// Copyright 2016 Proyectos y Sistemas de Mantenimiento SL (eProsima).
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
//     http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.

/*!
 * @file perception_msgs.h
 * This header file contains the declaration of the described types in the IDL file.
 *
 * This file was generated by the tool gen.
 */

#ifndef _PERCEPTION_MSGS_H_
#define _PERCEPTION_MSGS_H_


#include <stdint.h>
#include <array>
#include <string>
#include <vector>
#include <map>
#include <bitset>

#if defined(_WIN32)
#if defined(EPROSIMA_USER_DLL_EXPORT)
#define eProsima_user_DllExport __declspec( dllexport )
#else
#define eProsima_user_DllExport
#endif  // EPROSIMA_USER_DLL_EXPORT
#else
#define eProsima_user_DllExport
#endif  // _WIN32

#if defined(_WIN32)
#if defined(EPROSIMA_USER_DLL_EXPORT)
#if defined(perception_msgs_SOURCE)
#define perception_msgs_DllAPI __declspec( dllexport )
#else
#define perception_msgs_DllAPI __declspec( dllimport )
#endif // perception_msgs_SOURCE
#else
#define perception_msgs_DllAPI
#endif  // EPROSIMA_USER_DLL_EXPORT
#else
#define perception_msgs_DllAPI
#endif // _WIN32

namespace eprosima {
namespace fastcdr {
class Cdr;
} // namespace fastcdr
} // namespace eprosima


/*!
 * @brief This class represents the structure DDS_PathPoint defined by the user in the IDL file.
 * @ingroup PERCEPTION_MSGS
 */
class DDS_PathPoint
{
public:

    /*!
     * @brief Default constructor.
     */
    eProsima_user_DllExport DDS_PathPoint();

    /*!
     * @brief Default destructor.
     */
    eProsima_user_DllExport ~DDS_PathPoint();

    /*!
     * @brief Copy constructor.
     * @param x Reference to the object DDS_PathPoint that will be copied.
     */
    eProsima_user_DllExport DDS_PathPoint(
            const DDS_PathPoint& x);

    /*!
     * @brief Move constructor.
     * @param x Reference to the object DDS_PathPoint that will be copied.
     */
    eProsima_user_DllExport DDS_PathPoint(
            DDS_PathPoint&& x);

    /*!
     * @brief Copy assignment.
     * @param x Reference to the object DDS_PathPoint that will be copied.
     */
    eProsima_user_DllExport DDS_PathPoint& operator =(
            const DDS_PathPoint& x);

    /*!
     * @brief Move assignment.
     * @param x Reference to the object DDS_PathPoint that will be copied.
     */
    eProsima_user_DllExport DDS_PathPoint& operator =(
            DDS_PathPoint&& x);

    /*!
     * @brief This function sets a value in member point_x
     * @param _point_x New value for member point_x
     */
    eProsima_user_DllExport void point_x(
            float _point_x);

    /*!
     * @brief This function returns the value of member point_x
     * @return Value of member point_x
     */
    eProsima_user_DllExport float point_x() const;

    /*!
     * @brief This function returns a reference to member point_x
     * @return Reference to member point_x
     */
    eProsima_user_DllExport float& point_x();

    /*!
     * @brief This function sets a value in member point_y
     * @param _point_y New value for member point_y
     */
    eProsima_user_DllExport void point_y(
            float _point_y);

    /*!
     * @brief This function returns the value of member point_y
     * @return Value of member point_y
     */
    eProsima_user_DllExport float point_y() const;

    /*!
     * @brief This function returns a reference to member point_y
     * @return Reference to member point_y
     */
    eProsima_user_DllExport float& point_y();

    /*!
     * @brief This function sets a value in member altitude
     * @param _altitude New value for member altitude
     */
    eProsima_user_DllExport void altitude(
            float _altitude);

    /*!
     * @brief This function returns the value of member altitude
     * @return Value of member altitude
     */
    eProsima_user_DllExport float altitude() const;

    /*!
     * @brief This function returns a reference to member altitude
     * @return Reference to member altitude
     */
    eProsima_user_DllExport float& altitude();

    /*!
     * @brief This function sets a value in member distance
     * @param _distance New value for member distance
     */
    eProsima_user_DllExport void distance(
            float _distance);

    /*!
     * @brief This function returns the value of member distance
     * @return Value of member distance
     */
    eProsima_user_DllExport float distance() const;

    /*!
     * @brief This function returns a reference to member distance
     * @return Reference to member distance
     */
    eProsima_user_DllExport float& distance();

    /*!
     * @brief This function sets a value in member slope
     * @param _slope New value for member slope
     */
    eProsima_user_DllExport void slope(
            float _slope);

    /*!
     * @brief This function returns the value of member slope
     * @return Value of member slope
     */
    eProsima_user_DllExport float slope() const;

    /*!
     * @brief This function returns a reference to member slope
     * @return Reference to member slope
     */
    eProsima_user_DllExport float& slope();

    /*!
     * @brief This function sets a value in member curvature
     * @param _curvature New value for member curvature
     */
    eProsima_user_DllExport void curvature(
            float _curvature);

    /*!
     * @brief This function returns the value of member curvature
     * @return Value of member curvature
     */
    eProsima_user_DllExport float curvature() const;

    /*!
     * @brief This function returns a reference to member curvature
     * @return Reference to member curvature
     */
    eProsima_user_DllExport float& curvature();


    /*!
     * @brief This function returns the maximum serialized size of an object
     * depending on the buffer alignment.
     * @param current_alignment Buffer alignment.
     * @return Maximum serialized size.
     */
    eProsima_user_DllExport static size_t getMaxCdrSerializedSize(
            size_t current_alignment = 0);

    /*!
     * @brief This function returns the serialized size of a data depending on the buffer alignment.
     * @param data Data which is calculated its serialized size.
     * @param current_alignment Buffer alignment.
     * @return Serialized size.
     */
    eProsima_user_DllExport static size_t getCdrSerializedSize(
            const DDS_PathPoint& data,
            size_t current_alignment = 0);


    /*!
     * @brief This function serializes an object using CDR serialization.
     * @param cdr CDR serialization object.
     */
    eProsima_user_DllExport void serialize(
            eprosima::fastcdr::Cdr& cdr) const;

    /*!
     * @brief This function deserializes an object using CDR serialization.
     * @param cdr CDR serialization object.
     */
    eProsima_user_DllExport void deserialize(
            eprosima::fastcdr::Cdr& cdr);



    /*!
     * @brief This function returns the maximum serialized size of the Key of an object
     * depending on the buffer alignment.
     * @param current_alignment Buffer alignment.
     * @return Maximum serialized size.
     */
    eProsima_user_DllExport static size_t getKeyMaxCdrSerializedSize(
            size_t current_alignment = 0);

    /*!
     * @brief This function tells you if the Key has been defined for this type
     */
    eProsima_user_DllExport static bool isKeyDefined();

    /*!
     * @brief This function serializes the key members of an object using CDR serialization.
     * @param cdr CDR serialization object.
     */
    eProsima_user_DllExport void serializeKey(
            eprosima::fastcdr::Cdr& cdr) const;

private:

    float m_point_x;
    float m_point_y;
    float m_altitude;
    float m_distance;
    float m_slope;
    float m_curvature;
};
/*!
 * @brief This class represents the structure DDS_PathPoints defined by the user in the IDL file.
 * @ingroup PERCEPTION_MSGS
 */
class DDS_PathPoints
{
public:

    /*!
     * @brief Default constructor.
     */
    eProsima_user_DllExport DDS_PathPoints();

    /*!
     * @brief Default destructor.
     */
    eProsima_user_DllExport ~DDS_PathPoints();

    /*!
     * @brief Copy constructor.
     * @param x Reference to the object DDS_PathPoints that will be copied.
     */
    eProsima_user_DllExport DDS_PathPoints(
            const DDS_PathPoints& x);

    /*!
     * @brief Move constructor.
     * @param x Reference to the object DDS_PathPoints that will be copied.
     */
    eProsima_user_DllExport DDS_PathPoints(
            DDS_PathPoints&& x);

    /*!
     * @brief Copy assignment.
     * @param x Reference to the object DDS_PathPoints that will be copied.
     */
    eProsima_user_DllExport DDS_PathPoints& operator =(
            const DDS_PathPoints& x);

    /*!
     * @brief Move assignment.
     * @param x Reference to the object DDS_PathPoints that will be copied.
     */
    eProsima_user_DllExport DDS_PathPoints& operator =(
            DDS_PathPoints&& x);

    /*!
     * @brief This function sets a value in member stamp
     * @param _stamp New value for member stamp
     */
    eProsima_user_DllExport void stamp(
            int64_t _stamp);

    /*!
     * @brief This function returns the value of member stamp
     * @return Value of member stamp
     */
    eProsima_user_DllExport int64_t stamp() const;

    /*!
     * @brief This function returns a reference to member stamp
     * @return Reference to member stamp
     */
    eProsima_user_DllExport int64_t& stamp();

    /*!
     * @brief This function copies the value in member objects
     * @param _objects New value to be copied in member objects
     */
    eProsima_user_DllExport void objects(
            const std::vector<DDS_PathPoint>& _objects);

    /*!
     * @brief This function moves the value in member objects
     * @param _objects New value to be moved in member objects
     */
    eProsima_user_DllExport void objects(
            std::vector<DDS_PathPoint>&& _objects);

    /*!
     * @brief This function returns a constant reference to member objects
     * @return Constant reference to member objects
     */
    eProsima_user_DllExport const std::vector<DDS_PathPoint>& objects() const;

    /*!
     * @brief This function returns a reference to member objects
     * @return Reference to member objects
     */
    eProsima_user_DllExport std::vector<DDS_PathPoint>& objects();

    /*!
     * @brief This function returns the maximum serialized size of an object
     * depending on the buffer alignment.
     * @param current_alignment Buffer alignment.
     * @return Maximum serialized size.
     */
    eProsima_user_DllExport static size_t getMaxCdrSerializedSize(
            size_t current_alignment = 0);

    /*!
     * @brief This function returns the serialized size of a data depending on the buffer alignment.
     * @param data Data which is calculated its serialized size.
     * @param current_alignment Buffer alignment.
     * @return Serialized size.
     */
    eProsima_user_DllExport static size_t getCdrSerializedSize(
            const DDS_PathPoints& data,
            size_t current_alignment = 0);


    /*!
     * @brief This function serializes an object using CDR serialization.
     * @param cdr CDR serialization object.
     */
    eProsima_user_DllExport void serialize(
            eprosima::fastcdr::Cdr& cdr) const;

    /*!
     * @brief This function deserializes an object using CDR serialization.
     * @param cdr CDR serialization object.
     */
    eProsima_user_DllExport void deserialize(
            eprosima::fastcdr::Cdr& cdr);



    /*!
     * @brief This function returns the maximum serialized size of the Key of an object
     * depending on the buffer alignment.
     * @param current_alignment Buffer alignment.
     * @return Maximum serialized size.
     */
    eProsima_user_DllExport static size_t getKeyMaxCdrSerializedSize(
            size_t current_alignment = 0);

    /*!
     * @brief This function tells you if the Key has been defined for this type
     */
    eProsima_user_DllExport static bool isKeyDefined();

    /*!
     * @brief This function serializes the key members of an object using CDR serialization.
     * @param cdr CDR serialization object.
     */
    eProsima_user_DllExport void serializeKey(
            eprosima::fastcdr::Cdr& cdr) const;

private:

    int64_t m_stamp;
    std::vector<DDS_PathPoint> m_objects;
};
/*!
 * @brief This class represents the structure DDS_RadarInfo defined by the user in the IDL file.
 * @ingroup PERCEPTION_MSGS
 */
class DDS_RadarInfo
{
public:

    /*!
     * @brief Default constructor.
     */
    eProsima_user_DllExport DDS_RadarInfo();

    /*!
     * @brief Default destructor.
     */
    eProsima_user_DllExport ~DDS_RadarInfo();

    /*!
     * @brief Copy constructor.
     * @param x Reference to the object DDS_RadarInfo that will be copied.
     */
    eProsima_user_DllExport DDS_RadarInfo(
            const DDS_RadarInfo& x);

    /*!
     * @brief Move constructor.
     * @param x Reference to the object DDS_RadarInfo that will be copied.
     */
    eProsima_user_DllExport DDS_RadarInfo(
            DDS_RadarInfo&& x);

    /*!
     * @brief Copy assignment.
     * @param x Reference to the object DDS_RadarInfo that will be copied.
     */
    eProsima_user_DllExport DDS_RadarInfo& operator =(
            const DDS_RadarInfo& x);

    /*!
     * @brief Move assignment.
     * @param x Reference to the object DDS_RadarInfo that will be copied.
     */
    eProsima_user_DllExport DDS_RadarInfo& operator =(
            DDS_RadarInfo&& x);

    /*!
     * @brief This function sets a value in member stamp
     * @param _stamp New value for member stamp
     */
    eProsima_user_DllExport void stamp(
            int64_t _stamp);

    /*!
     * @brief This function returns the value of member stamp
     * @return Value of member stamp
     */
    eProsima_user_DllExport int64_t stamp() const;

    /*!
     * @brief This function returns a reference to member stamp
     * @return Reference to member stamp
     */
    eProsima_user_DllExport int64_t& stamp();

    /*!
     * @brief This function sets a value in member speed_direction
     * @param _speed_direction New value for member speed_direction
     */
    eProsima_user_DllExport void speed_direction(
            int32_t _speed_direction);

    /*!
     * @brief This function returns the value of member speed_direction
     * @return Value of member speed_direction
     */
    eProsima_user_DllExport int32_t speed_direction() const;

    /*!
     * @brief This function returns a reference to member speed_direction
     * @return Reference to member speed_direction
     */
    eProsima_user_DllExport int32_t& speed_direction();

    /*!
     * @brief This function sets a value in member speed
     * @param _speed New value for member speed
     */
    eProsima_user_DllExport void speed(
            float _speed);

    /*!
     * @brief This function returns the value of member speed
     * @return Value of member speed
     */
    eProsima_user_DllExport float speed() const;

    /*!
     * @brief This function returns a reference to member speed
     * @return Reference to member speed
     */
    eProsima_user_DllExport float& speed();

    /*!
     * @brief This function sets a value in member yaw_rate
     * @param _yaw_rate New value for member yaw_rate
     */
    eProsima_user_DllExport void yaw_rate(
            float _yaw_rate);

    /*!
     * @brief This function returns the value of member yaw_rate
     * @return Value of member yaw_rate
     */
    eProsima_user_DllExport float yaw_rate() const;

    /*!
     * @brief This function returns a reference to member yaw_rate
     * @return Reference to member yaw_rate
     */
    eProsima_user_DllExport float& yaw_rate();

    /*!
     * @brief This function sets a value in member id
     * @param _id New value for member id
     */
    eProsima_user_DllExport void id(
            int32_t _id);

    /*!
     * @brief This function returns the value of member id
     * @return Value of member id
     */
    eProsima_user_DllExport int32_t id() const;

    /*!
     * @brief This function returns a reference to member id
     * @return Reference to member id
     */
    eProsima_user_DllExport int32_t& id();

    /*!
     * @brief This function sets a value in member dist_long
     * @param _dist_long New value for member dist_long
     */
    eProsima_user_DllExport void dist_long(
            float _dist_long);

    /*!
     * @brief This function returns the value of member dist_long
     * @return Value of member dist_long
     */
    eProsima_user_DllExport float dist_long() const;

    /*!
     * @brief This function returns a reference to member dist_long
     * @return Reference to member dist_long
     */
    eProsima_user_DllExport float& dist_long();

    /*!
     * @brief This function sets a value in member dist_lat
     * @param _dist_lat New value for member dist_lat
     */
    eProsima_user_DllExport void dist_lat(
            float _dist_lat);

    /*!
     * @brief This function returns the value of member dist_lat
     * @return Value of member dist_lat
     */
    eProsima_user_DllExport float dist_lat() const;

    /*!
     * @brief This function returns a reference to member dist_lat
     * @return Reference to member dist_lat
     */
    eProsima_user_DllExport float& dist_lat();

    /*!
     * @brief This function sets a value in member vrel_long
     * @param _vrel_long New value for member vrel_long
     */
    eProsima_user_DllExport void vrel_long(
            float _vrel_long);

    /*!
     * @brief This function returns the value of member vrel_long
     * @return Value of member vrel_long
     */
    eProsima_user_DllExport float vrel_long() const;

    /*!
     * @brief This function returns a reference to member vrel_long
     * @return Reference to member vrel_long
     */
    eProsima_user_DllExport float& vrel_long();

    /*!
     * @brief This function sets a value in member vrel_lat
     * @param _vrel_lat New value for member vrel_lat
     */
    eProsima_user_DllExport void vrel_lat(
            float _vrel_lat);

    /*!
     * @brief This function returns the value of member vrel_lat
     * @return Value of member vrel_lat
     */
    eProsima_user_DllExport float vrel_lat() const;

    /*!
     * @brief This function returns a reference to member vrel_lat
     * @return Reference to member vrel_lat
     */
    eProsima_user_DllExport float& vrel_lat();

    /*!
     * @brief This function sets a value in member dyn_prop
     * @param _dyn_prop New value for member dyn_prop
     */
    eProsima_user_DllExport void dyn_prop(
            int32_t _dyn_prop);

    /*!
     * @brief This function returns the value of member dyn_prop
     * @return Value of member dyn_prop
     */
    eProsima_user_DllExport int32_t dyn_prop() const;

    /*!
     * @brief This function returns a reference to member dyn_prop
     * @return Reference to member dyn_prop
     */
    eProsima_user_DllExport int32_t& dyn_prop();

    /*!
     * @brief This function sets a value in member rcs
     * @param _rcs New value for member rcs
     */
    eProsima_user_DllExport void rcs(
            float _rcs);

    /*!
     * @brief This function returns the value of member rcs
     * @return Value of member rcs
     */
    eProsima_user_DllExport float rcs() const;

    /*!
     * @brief This function returns a reference to member rcs
     * @return Reference to member rcs
     */
    eProsima_user_DllExport float& rcs();

    /*!
     * @brief This function sets a value in member dist_long_rms
     * @param _dist_long_rms New value for member dist_long_rms
     */
    eProsima_user_DllExport void dist_long_rms(
            int32_t _dist_long_rms);

    /*!
     * @brief This function returns the value of member dist_long_rms
     * @return Value of member dist_long_rms
     */
    eProsima_user_DllExport int32_t dist_long_rms() const;

    /*!
     * @brief This function returns a reference to member dist_long_rms
     * @return Reference to member dist_long_rms
     */
    eProsima_user_DllExport int32_t& dist_long_rms();

    /*!
     * @brief This function sets a value in member dist_lat_rms
     * @param _dist_lat_rms New value for member dist_lat_rms
     */
    eProsima_user_DllExport void dist_lat_rms(
            int32_t _dist_lat_rms);

    /*!
     * @brief This function returns the value of member dist_lat_rms
     * @return Value of member dist_lat_rms
     */
    eProsima_user_DllExport int32_t dist_lat_rms() const;

    /*!
     * @brief This function returns a reference to member dist_lat_rms
     * @return Reference to member dist_lat_rms
     */
    eProsima_user_DllExport int32_t& dist_lat_rms();

    /*!
     * @brief This function sets a value in member vrel_long_rms
     * @param _vrel_long_rms New value for member vrel_long_rms
     */
    eProsima_user_DllExport void vrel_long_rms(
            int32_t _vrel_long_rms);

    /*!
     * @brief This function returns the value of member vrel_long_rms
     * @return Value of member vrel_long_rms
     */
    eProsima_user_DllExport int32_t vrel_long_rms() const;

    /*!
     * @brief This function returns a reference to member vrel_long_rms
     * @return Reference to member vrel_long_rms
     */
    eProsima_user_DllExport int32_t& vrel_long_rms();

    /*!
     * @brief This function sets a value in member vrel_lat_rms
     * @param _vrel_lat_rms New value for member vrel_lat_rms
     */
    eProsima_user_DllExport void vrel_lat_rms(
            int32_t _vrel_lat_rms);

    /*!
     * @brief This function returns the value of member vrel_lat_rms
     * @return Value of member vrel_lat_rms
     */
    eProsima_user_DllExport int32_t vrel_lat_rms() const;

    /*!
     * @brief This function returns a reference to member vrel_lat_rms
     * @return Reference to member vrel_lat_rms
     */
    eProsima_user_DllExport int32_t& vrel_lat_rms();

    /*!
     * @brief This function sets a value in member arel_lat_rms
     * @param _arel_lat_rms New value for member arel_lat_rms
     */
    eProsima_user_DllExport void arel_lat_rms(
            int32_t _arel_lat_rms);

    /*!
     * @brief This function returns the value of member arel_lat_rms
     * @return Value of member arel_lat_rms
     */
    eProsima_user_DllExport int32_t arel_lat_rms() const;

    /*!
     * @brief This function returns a reference to member arel_lat_rms
     * @return Reference to member arel_lat_rms
     */
    eProsima_user_DllExport int32_t& arel_lat_rms();

    /*!
     * @brief This function sets a value in member arel_long_rms
     * @param _arel_long_rms New value for member arel_long_rms
     */
    eProsima_user_DllExport void arel_long_rms(
            int32_t _arel_long_rms);

    /*!
     * @brief This function returns the value of member arel_long_rms
     * @return Value of member arel_long_rms
     */
    eProsima_user_DllExport int32_t arel_long_rms() const;

    /*!
     * @brief This function returns a reference to member arel_long_rms
     * @return Reference to member arel_long_rms
     */
    eProsima_user_DllExport int32_t& arel_long_rms();

    /*!
     * @brief This function sets a value in member orientation_rms
     * @param _orientation_rms New value for member orientation_rms
     */
    eProsima_user_DllExport void orientation_rms(
            int32_t _orientation_rms);

    /*!
     * @brief This function returns the value of member orientation_rms
     * @return Value of member orientation_rms
     */
    eProsima_user_DllExport int32_t orientation_rms() const;

    /*!
     * @brief This function returns a reference to member orientation_rms
     * @return Reference to member orientation_rms
     */
    eProsima_user_DllExport int32_t& orientation_rms();

    /*!
     * @brief This function sets a value in member meas_state
     * @param _meas_state New value for member meas_state
     */
    eProsima_user_DllExport void meas_state(
            int32_t _meas_state);

    /*!
     * @brief This function returns the value of member meas_state
     * @return Value of member meas_state
     */
    eProsima_user_DllExport int32_t meas_state() const;

    /*!
     * @brief This function returns a reference to member meas_state
     * @return Reference to member meas_state
     */
    eProsima_user_DllExport int32_t& meas_state();

    /*!
     * @brief This function sets a value in member prob_of_exit
     * @param _prob_of_exit New value for member prob_of_exit
     */
    eProsima_user_DllExport void prob_of_exit(
            int32_t _prob_of_exit);

    /*!
     * @brief This function returns the value of member prob_of_exit
     * @return Value of member prob_of_exit
     */
    eProsima_user_DllExport int32_t prob_of_exit() const;

    /*!
     * @brief This function returns a reference to member prob_of_exit
     * @return Reference to member prob_of_exit
     */
    eProsima_user_DllExport int32_t& prob_of_exit();

    /*!
     * @brief This function sets a value in member arel_long
     * @param _arel_long New value for member arel_long
     */
    eProsima_user_DllExport void arel_long(
            float _arel_long);

    /*!
     * @brief This function returns the value of member arel_long
     * @return Value of member arel_long
     */
    eProsima_user_DllExport float arel_long() const;

    /*!
     * @brief This function returns a reference to member arel_long
     * @return Reference to member arel_long
     */
    eProsima_user_DllExport float& arel_long();

    /*!
     * @brief This function sets a value in member arel_lat
     * @param _arel_lat New value for member arel_lat
     */
    eProsima_user_DllExport void arel_lat(
            float _arel_lat);

    /*!
     * @brief This function returns the value of member arel_lat
     * @return Value of member arel_lat
     */
    eProsima_user_DllExport float arel_lat() const;

    /*!
     * @brief This function returns a reference to member arel_lat
     * @return Reference to member arel_lat
     */
    eProsima_user_DllExport float& arel_lat();

    /*!
     * @brief This function sets a value in member object_class
     * @param _object_class New value for member object_class
     */
    eProsima_user_DllExport void object_class(
            int32_t _object_class);

    /*!
     * @brief This function returns the value of member object_class
     * @return Value of member object_class
     */
    eProsima_user_DllExport int32_t object_class() const;

    /*!
     * @brief This function returns a reference to member object_class
     * @return Reference to member object_class
     */
    eProsima_user_DllExport int32_t& object_class();

    /*!
     * @brief This function sets a value in member orientation_angle
     * @param _orientation_angle New value for member orientation_angle
     */
    eProsima_user_DllExport void orientation_angle(
            float _orientation_angle);

    /*!
     * @brief This function returns the value of member orientation_angle
     * @return Value of member orientation_angle
     */
    eProsima_user_DllExport float orientation_angle() const;

    /*!
     * @brief This function returns a reference to member orientation_angle
     * @return Reference to member orientation_angle
     */
    eProsima_user_DllExport float& orientation_angle();

    /*!
     * @brief This function sets a value in member length
     * @param _length New value for member length
     */
    eProsima_user_DllExport void length(
            float _length);

    /*!
     * @brief This function returns the value of member length
     * @return Value of member length
     */
    eProsima_user_DllExport float length() const;

    /*!
     * @brief This function returns a reference to member length
     * @return Reference to member length
     */
    eProsima_user_DllExport float& length();

    /*!
     * @brief This function sets a value in member width
     * @param _width New value for member width
     */
    eProsima_user_DllExport void width(
            float _width);

    /*!
     * @brief This function returns the value of member width
     * @return Value of member width
     */
    eProsima_user_DllExport float width() const;

    /*!
     * @brief This function returns a reference to member width
     * @return Reference to member width
     */
    eProsima_user_DllExport float& width();


    /*!
     * @brief This function returns the maximum serialized size of an object
     * depending on the buffer alignment.
     * @param current_alignment Buffer alignment.
     * @return Maximum serialized size.
     */
    eProsima_user_DllExport static size_t getMaxCdrSerializedSize(
            size_t current_alignment = 0);

    /*!
     * @brief This function returns the serialized size of a data depending on the buffer alignment.
     * @param data Data which is calculated its serialized size.
     * @param current_alignment Buffer alignment.
     * @return Serialized size.
     */
    eProsima_user_DllExport static size_t getCdrSerializedSize(
            const DDS_RadarInfo& data,
            size_t current_alignment = 0);


    /*!
     * @brief This function serializes an object using CDR serialization.
     * @param cdr CDR serialization object.
     */
    eProsima_user_DllExport void serialize(
            eprosima::fastcdr::Cdr& cdr) const;

    /*!
     * @brief This function deserializes an object using CDR serialization.
     * @param cdr CDR serialization object.
     */
    eProsima_user_DllExport void deserialize(
            eprosima::fastcdr::Cdr& cdr);



    /*!
     * @brief This function returns the maximum serialized size of the Key of an object
     * depending on the buffer alignment.
     * @param current_alignment Buffer alignment.
     * @return Maximum serialized size.
     */
    eProsima_user_DllExport static size_t getKeyMaxCdrSerializedSize(
            size_t current_alignment = 0);

    /*!
     * @brief This function tells you if the Key has been defined for this type
     */
    eProsima_user_DllExport static bool isKeyDefined();

    /*!
     * @brief This function serializes the key members of an object using CDR serialization.
     * @param cdr CDR serialization object.
     */
    eProsima_user_DllExport void serializeKey(
            eprosima::fastcdr::Cdr& cdr) const;

private:

    int64_t m_stamp;
    int32_t m_speed_direction;
    float m_speed;
    float m_yaw_rate;
    int32_t m_id;
    float m_dist_long;
    float m_dist_lat;
    float m_vrel_long;
    float m_vrel_lat;
    int32_t m_dyn_prop;
    float m_rcs;
    int32_t m_dist_long_rms;
    int32_t m_dist_lat_rms;
    int32_t m_vrel_long_rms;
    int32_t m_vrel_lat_rms;
    int32_t m_arel_lat_rms;
    int32_t m_arel_long_rms;
    int32_t m_orientation_rms;
    int32_t m_meas_state;
    int32_t m_prob_of_exit;
    float m_arel_long;
    float m_arel_lat;
    int32_t m_object_class;
    float m_orientation_angle;
    float m_length;
    float m_width;
};
/*!
 * @brief This class represents the structure DDS_RadarInfos defined by the user in the IDL file.
 * @ingroup PERCEPTION_MSGS
 */
class DDS_RadarInfos
{
public:

    /*!
     * @brief Default constructor.
     */
    eProsima_user_DllExport DDS_RadarInfos();

    /*!
     * @brief Default destructor.
     */
    eProsima_user_DllExport ~DDS_RadarInfos();

    /*!
     * @brief Copy constructor.
     * @param x Reference to the object DDS_RadarInfos that will be copied.
     */
    eProsima_user_DllExport DDS_RadarInfos(
            const DDS_RadarInfos& x);

    /*!
     * @brief Move constructor.
     * @param x Reference to the object DDS_RadarInfos that will be copied.
     */
    eProsima_user_DllExport DDS_RadarInfos(
            DDS_RadarInfos&& x);

    /*!
     * @brief Copy assignment.
     * @param x Reference to the object DDS_RadarInfos that will be copied.
     */
    eProsima_user_DllExport DDS_RadarInfos& operator =(
            const DDS_RadarInfos& x);

    /*!
     * @brief Move assignment.
     * @param x Reference to the object DDS_RadarInfos that will be copied.
     */
    eProsima_user_DllExport DDS_RadarInfos& operator =(
            DDS_RadarInfos&& x);

    /*!
     * @brief This function sets a value in member stamp
     * @param _stamp New value for member stamp
     */
    eProsima_user_DllExport void stamp(
            int64_t _stamp);

    /*!
     * @brief This function returns the value of member stamp
     * @return Value of member stamp
     */
    eProsima_user_DllExport int64_t stamp() const;

    /*!
     * @brief This function returns a reference to member stamp
     * @return Reference to member stamp
     */
    eProsima_user_DllExport int64_t& stamp();

    /*!
     * @brief This function copies the value in member objects
     * @param _objects New value to be copied in member objects
     */
    eProsima_user_DllExport void objects(
            const std::vector<DDS_RadarInfo>& _objects);

    /*!
     * @brief This function moves the value in member objects
     * @param _objects New value to be moved in member objects
     */
    eProsima_user_DllExport void objects(
            std::vector<DDS_RadarInfo>&& _objects);

    /*!
     * @brief This function returns a constant reference to member objects
     * @return Constant reference to member objects
     */
    eProsima_user_DllExport const std::vector<DDS_RadarInfo>& objects() const;

    /*!
     * @brief This function returns a reference to member objects
     * @return Reference to member objects
     */
    eProsima_user_DllExport std::vector<DDS_RadarInfo>& objects();

    /*!
     * @brief This function returns the maximum serialized size of an object
     * depending on the buffer alignment.
     * @param current_alignment Buffer alignment.
     * @return Maximum serialized size.
     */
    eProsima_user_DllExport static size_t getMaxCdrSerializedSize(
            size_t current_alignment = 0);

    /*!
     * @brief This function returns the serialized size of a data depending on the buffer alignment.
     * @param data Data which is calculated its serialized size.
     * @param current_alignment Buffer alignment.
     * @return Serialized size.
     */
    eProsima_user_DllExport static size_t getCdrSerializedSize(
            const DDS_RadarInfos& data,
            size_t current_alignment = 0);


    /*!
     * @brief This function serializes an object using CDR serialization.
     * @param cdr CDR serialization object.
     */
    eProsima_user_DllExport void serialize(
            eprosima::fastcdr::Cdr& cdr) const;

    /*!
     * @brief This function deserializes an object using CDR serialization.
     * @param cdr CDR serialization object.
     */
    eProsima_user_DllExport void deserialize(
            eprosima::fastcdr::Cdr& cdr);



    /*!
     * @brief This function returns the maximum serialized size of the Key of an object
     * depending on the buffer alignment.
     * @param current_alignment Buffer alignment.
     * @return Maximum serialized size.
     */
    eProsima_user_DllExport static size_t getKeyMaxCdrSerializedSize(
            size_t current_alignment = 0);

    /*!
     * @brief This function tells you if the Key has been defined for this type
     */
    eProsima_user_DllExport static bool isKeyDefined();

    /*!
     * @brief This function serializes the key members of an object using CDR serialization.
     * @param cdr CDR serialization object.
     */
    eProsima_user_DllExport void serializeKey(
            eprosima::fastcdr::Cdr& cdr) const;

private:

    int64_t m_stamp;
    std::vector<DDS_RadarInfo> m_objects;
};
/*!
 * @brief This class represents the structure DDS_Image defined by the user in the IDL file.
 * @ingroup PERCEPTION_MSGS
 */
class DDS_Image
{
public:

    /*!
     * @brief Default constructor.
     */
    eProsima_user_DllExport DDS_Image();

    /*!
     * @brief Default destructor.
     */
    eProsima_user_DllExport ~DDS_Image();

    /*!
     * @brief Copy constructor.
     * @param x Reference to the object DDS_Image that will be copied.
     */
    eProsima_user_DllExport DDS_Image(
            const DDS_Image& x);

    /*!
     * @brief Move constructor.
     * @param x Reference to the object DDS_Image that will be copied.
     */
    eProsima_user_DllExport DDS_Image(
            DDS_Image&& x);

    /*!
     * @brief Copy assignment.
     * @param x Reference to the object DDS_Image that will be copied.
     */
    eProsima_user_DllExport DDS_Image& operator =(
            const DDS_Image& x);

    /*!
     * @brief Move assignment.
     * @param x Reference to the object DDS_Image that will be copied.
     */
    eProsima_user_DllExport DDS_Image& operator =(
            DDS_Image&& x);

    /*!
     * @brief This function sets a value in member stamp
     * @param _stamp New value for member stamp
     */
    eProsima_user_DllExport void stamp(
            int64_t _stamp);

    /*!
     * @brief This function returns the value of member stamp
     * @return Value of member stamp
     */
    eProsima_user_DllExport int64_t stamp() const;

    /*!
     * @brief This function returns a reference to member stamp
     * @return Reference to member stamp
     */
    eProsima_user_DllExport int64_t& stamp();

    /*!
     * @brief This function copies the value in member mat
     * @param _mat New value to be copied in member mat
     */
    eProsima_user_DllExport void mat(
            const std::array<uint8_t, 4147200>& _mat);

    /*!
     * @brief This function moves the value in member mat
     * @param _mat New value to be moved in member mat
     */
    eProsima_user_DllExport void mat(
            std::array<uint8_t, 4147200>&& _mat);

    /*!
     * @brief This function returns a constant reference to member mat
     * @return Constant reference to member mat
     */
    eProsima_user_DllExport const std::array<uint8_t, 4147200>& mat() const;

    /*!
     * @brief This function returns a reference to member mat
     * @return Reference to member mat
     */
    eProsima_user_DllExport std::array<uint8_t, 4147200>& mat();

    /*!
     * @brief This function returns the maximum serialized size of an object
     * depending on the buffer alignment.
     * @param current_alignment Buffer alignment.
     * @return Maximum serialized size.
     */
    eProsima_user_DllExport static size_t getMaxCdrSerializedSize(
            size_t current_alignment = 0);

    /*!
     * @brief This function returns the serialized size of a data depending on the buffer alignment.
     * @param data Data which is calculated its serialized size.
     * @param current_alignment Buffer alignment.
     * @return Serialized size.
     */
    eProsima_user_DllExport static size_t getCdrSerializedSize(
            const DDS_Image& data,
            size_t current_alignment = 0);


    /*!
     * @brief This function serializes an object using CDR serialization.
     * @param cdr CDR serialization object.
     */
    eProsima_user_DllExport void serialize(
            eprosima::fastcdr::Cdr& cdr) const;

    /*!
     * @brief This function deserializes an object using CDR serialization.
     * @param cdr CDR serialization object.
     */
    eProsima_user_DllExport void deserialize(
            eprosima::fastcdr::Cdr& cdr);



    /*!
     * @brief This function returns the maximum serialized size of the Key of an object
     * depending on the buffer alignment.
     * @param current_alignment Buffer alignment.
     * @return Maximum serialized size.
     */
    eProsima_user_DllExport static size_t getKeyMaxCdrSerializedSize(
            size_t current_alignment = 0);

    /*!
     * @brief This function tells you if the Key has been defined for this type
     */
    eProsima_user_DllExport static bool isKeyDefined();

    /*!
     * @brief This function serializes the key members of an object using CDR serialization.
     * @param cdr CDR serialization object.
     */
    eProsima_user_DllExport void serializeKey(
            eprosima::fastcdr::Cdr& cdr) const;

private:

    int64_t m_stamp;
    std::array<uint8_t, 4147200> m_mat;
};
/*!
 * @brief This class represents the structure DDS_Image_Small defined by the user in the IDL file.
 * @ingroup PERCEPTION_MSGS
 */
class DDS_Image_Small
{
public:

    /*!
     * @brief Default constructor.
     */
    eProsima_user_DllExport DDS_Image_Small();

    /*!
     * @brief Default destructor.
     */
    eProsima_user_DllExport ~DDS_Image_Small();

    /*!
     * @brief Copy constructor.
     * @param x Reference to the object DDS_Image_Small that will be copied.
     */
    eProsima_user_DllExport DDS_Image_Small(
            const DDS_Image_Small& x);

    /*!
     * @brief Move constructor.
     * @param x Reference to the object DDS_Image_Small that will be copied.
     */
    eProsima_user_DllExport DDS_Image_Small(
            DDS_Image_Small&& x);

    /*!
     * @brief Copy assignment.
     * @param x Reference to the object DDS_Image_Small that will be copied.
     */
    eProsima_user_DllExport DDS_Image_Small& operator =(
            const DDS_Image_Small& x);

    /*!
     * @brief Move assignment.
     * @param x Reference to the object DDS_Image_Small that will be copied.
     */
    eProsima_user_DllExport DDS_Image_Small& operator =(
            DDS_Image_Small&& x);

    /*!
     * @brief This function sets a value in member stamp
     * @param _stamp New value for member stamp
     */
    eProsima_user_DllExport void stamp(
            int64_t _stamp);

    /*!
     * @brief This function returns the value of member stamp
     * @return Value of member stamp
     */
    eProsima_user_DllExport int64_t stamp() const;

    /*!
     * @brief This function returns a reference to member stamp
     * @return Reference to member stamp
     */
    eProsima_user_DllExport int64_t& stamp();

    /*!
     * @brief This function copies the value in member mat
     * @param _mat New value to be copied in member mat
     */
    eProsima_user_DllExport void mat(
            const std::array<uint8_t, 921600>& _mat);

    /*!
     * @brief This function moves the value in member mat
     * @param _mat New value to be moved in member mat
     */
    eProsima_user_DllExport void mat(
            std::array<uint8_t, 921600>&& _mat);

    /*!
     * @brief This function returns a constant reference to member mat
     * @return Constant reference to member mat
     */
    eProsima_user_DllExport const std::array<uint8_t, 921600>& mat() const;

    /*!
     * @brief This function returns a reference to member mat
     * @return Reference to member mat
     */
    eProsima_user_DllExport std::array<uint8_t, 921600>& mat();

    /*!
     * @brief This function returns the maximum serialized size of an object
     * depending on the buffer alignment.
     * @param current_alignment Buffer alignment.
     * @return Maximum serialized size.
     */
    eProsima_user_DllExport static size_t getMaxCdrSerializedSize(
            size_t current_alignment = 0);

    /*!
     * @brief This function returns the serialized size of a data depending on the buffer alignment.
     * @param data Data which is calculated its serialized size.
     * @param current_alignment Buffer alignment.
     * @return Serialized size.
     */
    eProsima_user_DllExport static size_t getCdrSerializedSize(
            const DDS_Image_Small& data,
            size_t current_alignment = 0);


    /*!
     * @brief This function serializes an object using CDR serialization.
     * @param cdr CDR serialization object.
     */
    eProsima_user_DllExport void serialize(
            eprosima::fastcdr::Cdr& cdr) const;

    /*!
     * @brief This function deserializes an object using CDR serialization.
     * @param cdr CDR serialization object.
     */
    eProsima_user_DllExport void deserialize(
            eprosima::fastcdr::Cdr& cdr);



    /*!
     * @brief This function returns the maximum serialized size of the Key of an object
     * depending on the buffer alignment.
     * @param current_alignment Buffer alignment.
     * @return Maximum serialized size.
     */
    eProsima_user_DllExport static size_t getKeyMaxCdrSerializedSize(
            size_t current_alignment = 0);

    /*!
     * @brief This function tells you if the Key has been defined for this type
     */
    eProsima_user_DllExport static bool isKeyDefined();

    /*!
     * @brief This function serializes the key members of an object using CDR serialization.
     * @param cdr CDR serialization object.
     */
    eProsima_user_DllExport void serializeKey(
            eprosima::fastcdr::Cdr& cdr) const;

private:

    int64_t m_stamp;
    std::array<uint8_t, 921600> m_mat;
};
/*!
 * @brief This class represents the structure DDS_RadarState defined by the user in the IDL file.
 * @ingroup PERCEPTION_MSGS
 */
class DDS_RadarState
{
public:

    /*!
     * @brief Default constructor.
     */
    eProsima_user_DllExport DDS_RadarState();

    /*!
     * @brief Default destructor.
     */
    eProsima_user_DllExport ~DDS_RadarState();

    /*!
     * @brief Copy constructor.
     * @param x Reference to the object DDS_RadarState that will be copied.
     */
    eProsima_user_DllExport DDS_RadarState(
            const DDS_RadarState& x);

    /*!
     * @brief Move constructor.
     * @param x Reference to the object DDS_RadarState that will be copied.
     */
    eProsima_user_DllExport DDS_RadarState(
            DDS_RadarState&& x);

    /*!
     * @brief Copy assignment.
     * @param x Reference to the object DDS_RadarState that will be copied.
     */
    eProsima_user_DllExport DDS_RadarState& operator =(
            const DDS_RadarState& x);

    /*!
     * @brief Move assignment.
     * @param x Reference to the object DDS_RadarState that will be copied.
     */
    eProsima_user_DllExport DDS_RadarState& operator =(
            DDS_RadarState&& x);

    /*!
     * @brief This function sets a value in member radarstate_nvm_readstate
     * @param _radarstate_nvm_readstate New value for member radarstate_nvm_readstate
     */
    eProsima_user_DllExport void radarstate_nvm_readstate(
            bool _radarstate_nvm_readstate);

    /*!
     * @brief This function returns the value of member radarstate_nvm_readstate
     * @return Value of member radarstate_nvm_readstate
     */
    eProsima_user_DllExport bool radarstate_nvm_readstate() const;

    /*!
     * @brief This function returns a reference to member radarstate_nvm_readstate
     * @return Reference to member radarstate_nvm_readstate
     */
    eProsima_user_DllExport bool& radarstate_nvm_readstate();

    /*!
     * @brief This function sets a value in member radarstate_nvm_writestate
     * @param _radarstate_nvm_writestate New value for member radarstate_nvm_writestate
     */
    eProsima_user_DllExport void radarstate_nvm_writestate(
            bool _radarstate_nvm_writestate);

    /*!
     * @brief This function returns the value of member radarstate_nvm_writestate
     * @return Value of member radarstate_nvm_writestate
     */
    eProsima_user_DllExport bool radarstate_nvm_writestate() const;

    /*!
     * @brief This function returns a reference to member radarstate_nvm_writestate
     * @return Reference to member radarstate_nvm_writestate
     */
    eProsima_user_DllExport bool& radarstate_nvm_writestate();

    /*!
     * @brief This function sets a value in member radarstate_persistent_error
     * @param _radarstate_persistent_error New value for member radarstate_persistent_error
     */
    eProsima_user_DllExport void radarstate_persistent_error(
            bool _radarstate_persistent_error);

    /*!
     * @brief This function returns the value of member radarstate_persistent_error
     * @return Value of member radarstate_persistent_error
     */
    eProsima_user_DllExport bool radarstate_persistent_error() const;

    /*!
     * @brief This function returns a reference to member radarstate_persistent_error
     * @return Reference to member radarstate_persistent_error
     */
    eProsima_user_DllExport bool& radarstate_persistent_error();

    /*!
     * @brief This function sets a value in member radarstate_longerference
     * @param _radarstate_longerference New value for member radarstate_longerference
     */
    eProsima_user_DllExport void radarstate_longerference(
            bool _radarstate_longerference);

    /*!
     * @brief This function returns the value of member radarstate_longerference
     * @return Value of member radarstate_longerference
     */
    eProsima_user_DllExport bool radarstate_longerference() const;

    /*!
     * @brief This function returns a reference to member radarstate_longerference
     * @return Reference to member radarstate_longerference
     */
    eProsima_user_DllExport bool& radarstate_longerference();

    /*!
     * @brief This function sets a value in member radarstate_temperature_error
     * @param _radarstate_temperature_error New value for member radarstate_temperature_error
     */
    eProsima_user_DllExport void radarstate_temperature_error(
            bool _radarstate_temperature_error);

    /*!
     * @brief This function returns the value of member radarstate_temperature_error
     * @return Value of member radarstate_temperature_error
     */
    eProsima_user_DllExport bool radarstate_temperature_error() const;

    /*!
     * @brief This function returns a reference to member radarstate_temperature_error
     * @return Reference to member radarstate_temperature_error
     */
    eProsima_user_DllExport bool& radarstate_temperature_error();

    /*!
     * @brief This function sets a value in member radarstate_voltage_error
     * @param _radarstate_voltage_error New value for member radarstate_voltage_error
     */
    eProsima_user_DllExport void radarstate_voltage_error(
            bool _radarstate_voltage_error);

    /*!
     * @brief This function returns the value of member radarstate_voltage_error
     * @return Value of member radarstate_voltage_error
     */
    eProsima_user_DllExport bool radarstate_voltage_error() const;

    /*!
     * @brief This function returns a reference to member radarstate_voltage_error
     * @return Reference to member radarstate_voltage_error
     */
    eProsima_user_DllExport bool& radarstate_voltage_error();

    /*!
     * @brief This function sets a value in member radarstate_motion_rx_state
     * @param _radarstate_motion_rx_state New value for member radarstate_motion_rx_state
     */
    eProsima_user_DllExport void radarstate_motion_rx_state(
            int32_t _radarstate_motion_rx_state);

    /*!
     * @brief This function returns the value of member radarstate_motion_rx_state
     * @return Value of member radarstate_motion_rx_state
     */
    eProsima_user_DllExport int32_t radarstate_motion_rx_state() const;

    /*!
     * @brief This function returns a reference to member radarstate_motion_rx_state
     * @return Reference to member radarstate_motion_rx_state
     */
    eProsima_user_DllExport int32_t& radarstate_motion_rx_state();

    /*!
     * @brief This function sets a value in member radarstate_temporary_error
     * @param _radarstate_temporary_error New value for member radarstate_temporary_error
     */
    eProsima_user_DllExport void radarstate_temporary_error(
            bool _radarstate_temporary_error);

    /*!
     * @brief This function returns the value of member radarstate_temporary_error
     * @return Value of member radarstate_temporary_error
     */
    eProsima_user_DllExport bool radarstate_temporary_error() const;

    /*!
     * @brief This function returns a reference to member radarstate_temporary_error
     * @return Reference to member radarstate_temporary_error
     */
    eProsima_user_DllExport bool& radarstate_temporary_error();


    /*!
     * @brief This function returns the maximum serialized size of an object
     * depending on the buffer alignment.
     * @param current_alignment Buffer alignment.
     * @return Maximum serialized size.
     */
    eProsima_user_DllExport static size_t getMaxCdrSerializedSize(
            size_t current_alignment = 0);

    /*!
     * @brief This function returns the serialized size of a data depending on the buffer alignment.
     * @param data Data which is calculated its serialized size.
     * @param current_alignment Buffer alignment.
     * @return Serialized size.
     */
    eProsima_user_DllExport static size_t getCdrSerializedSize(
            const DDS_RadarState& data,
            size_t current_alignment = 0);


    /*!
     * @brief This function serializes an object using CDR serialization.
     * @param cdr CDR serialization object.
     */
    eProsima_user_DllExport void serialize(
            eprosima::fastcdr::Cdr& cdr) const;

    /*!
     * @brief This function deserializes an object using CDR serialization.
     * @param cdr CDR serialization object.
     */
    eProsima_user_DllExport void deserialize(
            eprosima::fastcdr::Cdr& cdr);



    /*!
     * @brief This function returns the maximum serialized size of the Key of an object
     * depending on the buffer alignment.
     * @param current_alignment Buffer alignment.
     * @return Maximum serialized size.
     */
    eProsima_user_DllExport static size_t getKeyMaxCdrSerializedSize(
            size_t current_alignment = 0);

    /*!
     * @brief This function tells you if the Key has been defined for this type
     */
    eProsima_user_DllExport static bool isKeyDefined();

    /*!
     * @brief This function serializes the key members of an object using CDR serialization.
     * @param cdr CDR serialization object.
     */
    eProsima_user_DllExport void serializeKey(
            eprosima::fastcdr::Cdr& cdr) const;

private:

    bool m_radarstate_nvm_readstate;
    bool m_radarstate_nvm_writestate;
    bool m_radarstate_persistent_error;
    bool m_radarstate_longerference;
    bool m_radarstate_temperature_error;
    bool m_radarstate_voltage_error;
    int32_t m_radarstate_motion_rx_state;
    bool m_radarstate_temporary_error;
};
/*!
 * @brief This class represents the structure DDS_AlgorithmInfo defined by the user in the IDL file.
 * @ingroup PERCEPTION_MSGS
 */
class DDS_AlgorithmInfo
{
public:

    /*!
     * @brief Default constructor.
     */
    eProsima_user_DllExport DDS_AlgorithmInfo();

    /*!
     * @brief Default destructor.
     */
    eProsima_user_DllExport ~DDS_AlgorithmInfo();

    /*!
     * @brief Copy constructor.
     * @param x Reference to the object DDS_AlgorithmInfo that will be copied.
     */
    eProsima_user_DllExport DDS_AlgorithmInfo(
            const DDS_AlgorithmInfo& x);

    /*!
     * @brief Move constructor.
     * @param x Reference to the object DDS_AlgorithmInfo that will be copied.
     */
    eProsima_user_DllExport DDS_AlgorithmInfo(
            DDS_AlgorithmInfo&& x);

    /*!
     * @brief Copy assignment.
     * @param x Reference to the object DDS_AlgorithmInfo that will be copied.
     */
    eProsima_user_DllExport DDS_AlgorithmInfo& operator =(
            const DDS_AlgorithmInfo& x);

    /*!
     * @brief Move assignment.
     * @param x Reference to the object DDS_AlgorithmInfo that will be copied.
     */
    eProsima_user_DllExport DDS_AlgorithmInfo& operator =(
            DDS_AlgorithmInfo&& x);

    /*!
     * @brief This function sets a value in member range
     * @param _range New value for member range
     */
    eProsima_user_DllExport void range(
            float _range);

    /*!
     * @brief This function returns the value of member range
     * @return Value of member range
     */
    eProsima_user_DllExport float range() const;

    /*!
     * @brief This function returns a reference to member range
     * @return Reference to member range
     */
    eProsima_user_DllExport float& range();

    /*!
     * @brief This function sets a value in member angle
     * @param _angle New value for member angle
     */
    eProsima_user_DllExport void angle(
            float _angle);

    /*!
     * @brief This function returns the value of member angle
     * @return Value of member angle
     */
    eProsima_user_DllExport float angle() const;

    /*!
     * @brief This function returns a reference to member angle
     * @return Reference to member angle
     */
    eProsima_user_DllExport float& angle();

    /*!
     * @brief This function sets a value in member vrel
     * @param _vrel New value for member vrel
     */
    eProsima_user_DllExport void vrel(
            float _vrel);

    /*!
     * @brief This function returns the value of member vrel
     * @return Value of member vrel
     */
    eProsima_user_DllExport float vrel() const;

    /*!
     * @brief This function returns a reference to member vrel
     * @return Reference to member vrel
     */
    eProsima_user_DllExport float& vrel();

    /*!
     * @brief This function sets a value in member fuse_num
     * @param _fuse_num New value for member fuse_num
     */
    eProsima_user_DllExport void fuse_num(
            int32_t _fuse_num);

    /*!
     * @brief This function returns the value of member fuse_num
     * @return Value of member fuse_num
     */
    eProsima_user_DllExport int32_t fuse_num() const;

    /*!
     * @brief This function returns a reference to member fuse_num
     * @return Reference to member fuse_num
     */
    eProsima_user_DllExport int32_t& fuse_num();

    /*!
     * @brief This function sets a value in member radar_num
     * @param _radar_num New value for member radar_num
     */
    eProsima_user_DllExport void radar_num(
            int32_t _radar_num);

    /*!
     * @brief This function returns the value of member radar_num
     * @return Value of member radar_num
     */
    eProsima_user_DllExport int32_t radar_num() const;

    /*!
     * @brief This function returns a reference to member radar_num
     * @return Reference to member radar_num
     */
    eProsima_user_DllExport int32_t& radar_num();

    /*!
     * @brief This function sets a value in member frame_associate_num
     * @param _frame_associate_num New value for member frame_associate_num
     */
    eProsima_user_DllExport void frame_associate_num(
            int32_t _frame_associate_num);

    /*!
     * @brief This function returns the value of member frame_associate_num
     * @return Value of member frame_associate_num
     */
    eProsima_user_DllExport int32_t frame_associate_num() const;

    /*!
     * @brief This function returns a reference to member frame_associate_num
     * @return Reference to member frame_associate_num
     */
    eProsima_user_DllExport int32_t& frame_associate_num();

    /*!
     * @brief This function sets a value in member track_cnt_
     * @param _track_cnt_ New value for member track_cnt_
     */
    eProsima_user_DllExport void track_cnt_(
            int32_t _track_cnt_);

    /*!
     * @brief This function returns the value of member track_cnt_
     * @return Value of member track_cnt_
     */
    eProsima_user_DllExport int32_t track_cnt_() const;

    /*!
     * @brief This function returns a reference to member track_cnt_
     * @return Reference to member track_cnt_
     */
    eProsima_user_DllExport int32_t& track_cnt_();

    /*!
     * @brief This function sets a value in member lost_cnt_
     * @param _lost_cnt_ New value for member lost_cnt_
     */
    eProsima_user_DllExport void lost_cnt_(
            float _lost_cnt_);

    /*!
     * @brief This function returns the value of member lost_cnt_
     * @return Value of member lost_cnt_
     */
    eProsima_user_DllExport float lost_cnt_() const;

    /*!
     * @brief This function returns a reference to member lost_cnt_
     * @return Reference to member lost_cnt_
     */
    eProsima_user_DllExport float& lost_cnt_();

    /*!
     * @brief This function sets a value in member tracker_id_
     * @param _tracker_id_ New value for member tracker_id_
     */
    eProsima_user_DllExport void tracker_id_(
            int32_t _tracker_id_);

    /*!
     * @brief This function returns the value of member tracker_id_
     * @return Value of member tracker_id_
     */
    eProsima_user_DllExport int32_t tracker_id_() const;

    /*!
     * @brief This function returns a reference to member tracker_id_
     * @return Reference to member tracker_id_
     */
    eProsima_user_DllExport int32_t& tracker_id_();

    /*!
     * @brief This function copies the value in member P_
     * @param _P_ New value to be copied in member P_
     */
    eProsima_user_DllExport void P_(
            const std::array<float, 16>& _P_);

    /*!
     * @brief This function moves the value in member P_
     * @param _P_ New value to be moved in member P_
     */
    eProsima_user_DllExport void P_(
            std::array<float, 16>&& _P_);

    /*!
     * @brief This function returns a constant reference to member P_
     * @return Constant reference to member P_
     */
    eProsima_user_DllExport const std::array<float, 16>& P_() const;

    /*!
     * @brief This function returns a reference to member P_
     * @return Reference to member P_
     */
    eProsima_user_DllExport std::array<float, 16>& P_();

    /*!
     * @brief This function returns the maximum serialized size of an object
     * depending on the buffer alignment.
     * @param current_alignment Buffer alignment.
     * @return Maximum serialized size.
     */
    eProsima_user_DllExport static size_t getMaxCdrSerializedSize(
            size_t current_alignment = 0);

    /*!
     * @brief This function returns the serialized size of a data depending on the buffer alignment.
     * @param data Data which is calculated its serialized size.
     * @param current_alignment Buffer alignment.
     * @return Serialized size.
     */
    eProsima_user_DllExport static size_t getCdrSerializedSize(
            const DDS_AlgorithmInfo& data,
            size_t current_alignment = 0);


    /*!
     * @brief This function serializes an object using CDR serialization.
     * @param cdr CDR serialization object.
     */
    eProsima_user_DllExport void serialize(
            eprosima::fastcdr::Cdr& cdr) const;

    /*!
     * @brief This function deserializes an object using CDR serialization.
     * @param cdr CDR serialization object.
     */
    eProsima_user_DllExport void deserialize(
            eprosima::fastcdr::Cdr& cdr);



    /*!
     * @brief This function returns the maximum serialized size of the Key of an object
     * depending on the buffer alignment.
     * @param current_alignment Buffer alignment.
     * @return Maximum serialized size.
     */
    eProsima_user_DllExport static size_t getKeyMaxCdrSerializedSize(
            size_t current_alignment = 0);

    /*!
     * @brief This function tells you if the Key has been defined for this type
     */
    eProsima_user_DllExport static bool isKeyDefined();

    /*!
     * @brief This function serializes the key members of an object using CDR serialization.
     * @param cdr CDR serialization object.
     */
    eProsima_user_DllExport void serializeKey(
            eprosima::fastcdr::Cdr& cdr) const;

private:

    float m_range;
    float m_angle;
    float m_vrel;
    int32_t m_fuse_num;
    int32_t m_radar_num;
    int32_t m_frame_associate_num;
    int32_t m_track_cnt_;
    float m_lost_cnt_;
    int32_t m_tracker_id_;
    std::array<float, 16> m_P_;
};
/*!
 * @brief This class represents the structure DDS_RadarObject defined by the user in the IDL file.
 * @ingroup PERCEPTION_MSGS
 */
class DDS_RadarObject
{
public:

    /*!
     * @brief Default constructor.
     */
    eProsima_user_DllExport DDS_RadarObject();

    /*!
     * @brief Default destructor.
     */
    eProsima_user_DllExport ~DDS_RadarObject();

    /*!
     * @brief Copy constructor.
     * @param x Reference to the object DDS_RadarObject that will be copied.
     */
    eProsima_user_DllExport DDS_RadarObject(
            const DDS_RadarObject& x);

    /*!
     * @brief Move constructor.
     * @param x Reference to the object DDS_RadarObject that will be copied.
     */
    eProsima_user_DllExport DDS_RadarObject(
            DDS_RadarObject&& x);

    /*!
     * @brief Copy assignment.
     * @param x Reference to the object DDS_RadarObject that will be copied.
     */
    eProsima_user_DllExport DDS_RadarObject& operator =(
            const DDS_RadarObject& x);

    /*!
     * @brief Move assignment.
     * @param x Reference to the object DDS_RadarObject that will be copied.
     */
    eProsima_user_DllExport DDS_RadarObject& operator =(
            DDS_RadarObject&& x);

    /*!
     * @brief This function copies the value in member radar_info
     * @param _radar_info New value to be copied in member radar_info
     */
    eProsima_user_DllExport void radar_info(
            const DDS_RadarInfo& _radar_info);

    /*!
     * @brief This function moves the value in member radar_info
     * @param _radar_info New value to be moved in member radar_info
     */
    eProsima_user_DllExport void radar_info(
            DDS_RadarInfo&& _radar_info);

    /*!
     * @brief This function returns a constant reference to member radar_info
     * @return Constant reference to member radar_info
     */
    eProsima_user_DllExport const DDS_RadarInfo& radar_info() const;

    /*!
     * @brief This function returns a reference to member radar_info
     * @return Reference to member radar_info
     */
    eProsima_user_DllExport DDS_RadarInfo& radar_info();
    /*!
     * @brief This function copies the value in member alg_info
     * @param _alg_info New value to be copied in member alg_info
     */
    eProsima_user_DllExport void alg_info(
            const DDS_AlgorithmInfo& _alg_info);

    /*!
     * @brief This function moves the value in member alg_info
     * @param _alg_info New value to be moved in member alg_info
     */
    eProsima_user_DllExport void alg_info(
            DDS_AlgorithmInfo&& _alg_info);

    /*!
     * @brief This function returns a constant reference to member alg_info
     * @return Constant reference to member alg_info
     */
    eProsima_user_DllExport const DDS_AlgorithmInfo& alg_info() const;

    /*!
     * @brief This function returns a reference to member alg_info
     * @return Reference to member alg_info
     */
    eProsima_user_DllExport DDS_AlgorithmInfo& alg_info();

    /*!
     * @brief This function returns the maximum serialized size of an object
     * depending on the buffer alignment.
     * @param current_alignment Buffer alignment.
     * @return Maximum serialized size.
     */
    eProsima_user_DllExport static size_t getMaxCdrSerializedSize(
            size_t current_alignment = 0);

    /*!
     * @brief This function returns the serialized size of a data depending on the buffer alignment.
     * @param data Data which is calculated its serialized size.
     * @param current_alignment Buffer alignment.
     * @return Serialized size.
     */
    eProsima_user_DllExport static size_t getCdrSerializedSize(
            const DDS_RadarObject& data,
            size_t current_alignment = 0);


    /*!
     * @brief This function serializes an object using CDR serialization.
     * @param cdr CDR serialization object.
     */
    eProsima_user_DllExport void serialize(
            eprosima::fastcdr::Cdr& cdr) const;

    /*!
     * @brief This function deserializes an object using CDR serialization.
     * @param cdr CDR serialization object.
     */
    eProsima_user_DllExport void deserialize(
            eprosima::fastcdr::Cdr& cdr);



    /*!
     * @brief This function returns the maximum serialized size of the Key of an object
     * depending on the buffer alignment.
     * @param current_alignment Buffer alignment.
     * @return Maximum serialized size.
     */
    eProsima_user_DllExport static size_t getKeyMaxCdrSerializedSize(
            size_t current_alignment = 0);

    /*!
     * @brief This function tells you if the Key has been defined for this type
     */
    eProsima_user_DllExport static bool isKeyDefined();

    /*!
     * @brief This function serializes the key members of an object using CDR serialization.
     * @param cdr CDR serialization object.
     */
    eProsima_user_DllExport void serializeKey(
            eprosima::fastcdr::Cdr& cdr) const;

private:

    DDS_RadarInfo m_radar_info;
    DDS_AlgorithmInfo m_alg_info;
};
/*!
 * @brief This class represents the structure DDS_RadarObjects defined by the user in the IDL file.
 * @ingroup PERCEPTION_MSGS
 */
class DDS_RadarObjects
{
public:

    /*!
     * @brief Default constructor.
     */
    eProsima_user_DllExport DDS_RadarObjects();

    /*!
     * @brief Default destructor.
     */
    eProsima_user_DllExport ~DDS_RadarObjects();

    /*!
     * @brief Copy constructor.
     * @param x Reference to the object DDS_RadarObjects that will be copied.
     */
    eProsima_user_DllExport DDS_RadarObjects(
            const DDS_RadarObjects& x);

    /*!
     * @brief Move constructor.
     * @param x Reference to the object DDS_RadarObjects that will be copied.
     */
    eProsima_user_DllExport DDS_RadarObjects(
            DDS_RadarObjects&& x);

    /*!
     * @brief Copy assignment.
     * @param x Reference to the object DDS_RadarObjects that will be copied.
     */
    eProsima_user_DllExport DDS_RadarObjects& operator =(
            const DDS_RadarObjects& x);

    /*!
     * @brief Move assignment.
     * @param x Reference to the object DDS_RadarObjects that will be copied.
     */
    eProsima_user_DllExport DDS_RadarObjects& operator =(
            DDS_RadarObjects&& x);

    /*!
     * @brief This function sets a value in member stamp
     * @param _stamp New value for member stamp
     */
    eProsima_user_DllExport void stamp(
            int64_t _stamp);

    /*!
     * @brief This function returns the value of member stamp
     * @return Value of member stamp
     */
    eProsima_user_DllExport int64_t stamp() const;

    /*!
     * @brief This function returns a reference to member stamp
     * @return Reference to member stamp
     */
    eProsima_user_DllExport int64_t& stamp();

    /*!
     * @brief This function copies the value in member objects
     * @param _objects New value to be copied in member objects
     */
    eProsima_user_DllExport void objects(
            const std::vector<DDS_RadarObject>& _objects);

    /*!
     * @brief This function moves the value in member objects
     * @param _objects New value to be moved in member objects
     */
    eProsima_user_DllExport void objects(
            std::vector<DDS_RadarObject>&& _objects);

    /*!
     * @brief This function returns a constant reference to member objects
     * @return Constant reference to member objects
     */
    eProsima_user_DllExport const std::vector<DDS_RadarObject>& objects() const;

    /*!
     * @brief This function returns a reference to member objects
     * @return Reference to member objects
     */
    eProsima_user_DllExport std::vector<DDS_RadarObject>& objects();

    /*!
     * @brief This function returns the maximum serialized size of an object
     * depending on the buffer alignment.
     * @param current_alignment Buffer alignment.
     * @return Maximum serialized size.
     */
    eProsima_user_DllExport static size_t getMaxCdrSerializedSize(
            size_t current_alignment = 0);

    /*!
     * @brief This function returns the serialized size of a data depending on the buffer alignment.
     * @param data Data which is calculated its serialized size.
     * @param current_alignment Buffer alignment.
     * @return Serialized size.
     */
    eProsima_user_DllExport static size_t getCdrSerializedSize(
            const DDS_RadarObjects& data,
            size_t current_alignment = 0);


    /*!
     * @brief This function serializes an object using CDR serialization.
     * @param cdr CDR serialization object.
     */
    eProsima_user_DllExport void serialize(
            eprosima::fastcdr::Cdr& cdr) const;

    /*!
     * @brief This function deserializes an object using CDR serialization.
     * @param cdr CDR serialization object.
     */
    eProsima_user_DllExport void deserialize(
            eprosima::fastcdr::Cdr& cdr);



    /*!
     * @brief This function returns the maximum serialized size of the Key of an object
     * depending on the buffer alignment.
     * @param current_alignment Buffer alignment.
     * @return Maximum serialized size.
     */
    eProsima_user_DllExport static size_t getKeyMaxCdrSerializedSize(
            size_t current_alignment = 0);

    /*!
     * @brief This function tells you if the Key has been defined for this type
     */
    eProsima_user_DllExport static bool isKeyDefined();

    /*!
     * @brief This function serializes the key members of an object using CDR serialization.
     * @param cdr CDR serialization object.
     */
    eProsima_user_DllExport void serializeKey(
            eprosima::fastcdr::Cdr& cdr) const;

private:

    int64_t m_stamp;
    std::vector<DDS_RadarObject> m_objects;
};
/*!
 * @brief This class represents the structure DDS_Object defined by the user in the IDL file.
 * @ingroup PERCEPTION_MSGS
 */
class DDS_Object
{
public:

    /*!
     * @brief Default constructor.
     */
    eProsima_user_DllExport DDS_Object();

    /*!
     * @brief Default destructor.
     */
    eProsima_user_DllExport ~DDS_Object();

    /*!
     * @brief Copy constructor.
     * @param x Reference to the object DDS_Object that will be copied.
     */
    eProsima_user_DllExport DDS_Object(
            const DDS_Object& x);

    /*!
     * @brief Move constructor.
     * @param x Reference to the object DDS_Object that will be copied.
     */
    eProsima_user_DllExport DDS_Object(
            DDS_Object&& x);

    /*!
     * @brief Copy assignment.
     * @param x Reference to the object DDS_Object that will be copied.
     */
    eProsima_user_DllExport DDS_Object& operator =(
            const DDS_Object& x);

    /*!
     * @brief Move assignment.
     * @param x Reference to the object DDS_Object that will be copied.
     */
    eProsima_user_DllExport DDS_Object& operator =(
            DDS_Object&& x);

    /*!
     * @brief This function sets a value in member seq
     * @param _seq New value for member seq
     */
    eProsima_user_DllExport void seq(
            int32_t _seq);

    /*!
     * @brief This function returns the value of member seq
     * @return Value of member seq
     */
    eProsima_user_DllExport int32_t seq() const;

    /*!
     * @brief This function returns a reference to member seq
     * @return Reference to member seq
     */
    eProsima_user_DllExport int32_t& seq();

    /*!
     * @brief This function sets a value in member stamp
     * @param _stamp New value for member stamp
     */
    eProsima_user_DllExport void stamp(
            int64_t _stamp);

    /*!
     * @brief This function returns the value of member stamp
     * @return Value of member stamp
     */
    eProsima_user_DllExport int64_t stamp() const;

    /*!
     * @brief This function returns a reference to member stamp
     * @return Reference to member stamp
     */
    eProsima_user_DllExport int64_t& stamp();

    /*!
     * @brief This function sets a value in member tracker_id_
     * @param _tracker_id_ New value for member tracker_id_
     */
    eProsima_user_DllExport void tracker_id_(
            int32_t _tracker_id_);

    /*!
     * @brief This function returns the value of member tracker_id_
     * @return Value of member tracker_id_
     */
    eProsima_user_DllExport int32_t tracker_id_() const;

    /*!
     * @brief This function returns a reference to member tracker_id_
     * @return Reference to member tracker_id_
     */
    eProsima_user_DllExport int32_t& tracker_id_();

    /*!
     * @brief This function sets a value in member object_type
     * @param _object_type New value for member object_type
     */
    eProsima_user_DllExport void object_type(
            int32_t _object_type);

    /*!
     * @brief This function returns the value of member object_type
     * @return Value of member object_type
     */
    eProsima_user_DllExport int32_t object_type() const;

    /*!
     * @brief This function returns a reference to member object_type
     * @return Reference to member object_type
     */
    eProsima_user_DllExport int32_t& object_type();

    /*!
     * @brief This function sets a value in member confidence
     * @param _confidence New value for member confidence
     */
    eProsima_user_DllExport void confidence(
            float _confidence);

    /*!
     * @brief This function returns the value of member confidence
     * @return Value of member confidence
     */
    eProsima_user_DllExport float confidence() const;

    /*!
     * @brief This function returns a reference to member confidence
     * @return Reference to member confidence
     */
    eProsima_user_DllExport float& confidence();

    /*!
     * @brief This function copies the value in member center
     * @param _center New value to be copied in member center
     */
    eProsima_user_DllExport void center(
            const std::array<float, 3>& _center);

    /*!
     * @brief This function moves the value in member center
     * @param _center New value to be moved in member center
     */
    eProsima_user_DllExport void center(
            std::array<float, 3>&& _center);

    /*!
     * @brief This function returns a constant reference to member center
     * @return Constant reference to member center
     */
    eProsima_user_DllExport const std::array<float, 3>& center() const;

    /*!
     * @brief This function returns a reference to member center
     * @return Reference to member center
     */
    eProsima_user_DllExport std::array<float, 3>& center();
    /*!
     * @brief This function sets a value in member length
     * @param _length New value for member length
     */
    eProsima_user_DllExport void length(
            float _length);

    /*!
     * @brief This function returns the value of member length
     * @return Value of member length
     */
    eProsima_user_DllExport float length() const;

    /*!
     * @brief This function returns a reference to member length
     * @return Reference to member length
     */
    eProsima_user_DllExport float& length();

    /*!
     * @brief This function sets a value in member width
     * @param _width New value for member width
     */
    eProsima_user_DllExport void width(
            float _width);

    /*!
     * @brief This function returns the value of member width
     * @return Value of member width
     */
    eProsima_user_DllExport float width() const;

    /*!
     * @brief This function returns a reference to member width
     * @return Reference to member width
     */
    eProsima_user_DllExport float& width();

    /*!
     * @brief This function sets a value in member height
     * @param _height New value for member height
     */
    eProsima_user_DllExport void height(
            float _height);

    /*!
     * @brief This function returns the value of member height
     * @return Value of member height
     */
    eProsima_user_DllExport float height() const;

    /*!
     * @brief This function returns a reference to member height
     * @return Reference to member height
     */
    eProsima_user_DllExport float& height();

    /*!
     * @brief This function copies the value in member direction
     * @param _direction New value to be copied in member direction
     */
    eProsima_user_DllExport void direction(
            const std::array<float, 4>& _direction);

    /*!
     * @brief This function moves the value in member direction
     * @param _direction New value to be moved in member direction
     */
    eProsima_user_DllExport void direction(
            std::array<float, 4>&& _direction);

    /*!
     * @brief This function returns a constant reference to member direction
     * @return Constant reference to member direction
     */
    eProsima_user_DllExport const std::array<float, 4>& direction() const;

    /*!
     * @brief This function returns a reference to member direction
     * @return Reference to member direction
     */
    eProsima_user_DllExport std::array<float, 4>& direction();
    /*!
     * @brief This function sets a value in member theta
     * @param _theta New value for member theta
     */
    eProsima_user_DllExport void theta(
            float _theta);

    /*!
     * @brief This function returns the value of member theta
     * @return Value of member theta
     */
    eProsima_user_DllExport float theta() const;

    /*!
     * @brief This function returns a reference to member theta
     * @return Reference to member theta
     */
    eProsima_user_DllExport float& theta();

    /*!
     * @brief This function copies the value in member min
     * @param _min New value to be copied in member min
     */
    eProsima_user_DllExport void min(
            const std::array<float, 3>& _min);

    /*!
     * @brief This function moves the value in member min
     * @param _min New value to be moved in member min
     */
    eProsima_user_DllExport void min(
            std::array<float, 3>&& _min);

    /*!
     * @brief This function returns a constant reference to member min
     * @return Constant reference to member min
     */
    eProsima_user_DllExport const std::array<float, 3>& min() const;

    /*!
     * @brief This function returns a reference to member min
     * @return Reference to member min
     */
    eProsima_user_DllExport std::array<float, 3>& min();
    /*!
     * @brief This function copies the value in member max
     * @param _max New value to be copied in member max
     */
    eProsima_user_DllExport void max(
            const std::array<float, 3>& _max);

    /*!
     * @brief This function moves the value in member max
     * @param _max New value to be moved in member max
     */
    eProsima_user_DllExport void max(
            std::array<float, 3>&& _max);

    /*!
     * @brief This function returns a constant reference to member max
     * @return Constant reference to member max
     */
    eProsima_user_DllExport const std::array<float, 3>& max() const;

    /*!
     * @brief This function returns a reference to member max
     * @return Reference to member max
     */
    eProsima_user_DllExport std::array<float, 3>& max();
    /*!
     * @brief This function sets a value in member vrel_y
     * @param _vrel_y New value for member vrel_y
     */
    eProsima_user_DllExport void vrel_y(
            float _vrel_y);

    /*!
     * @brief This function returns the value of member vrel_y
     * @return Value of member vrel_y
     */
    eProsima_user_DllExport float vrel_y() const;

    /*!
     * @brief This function returns a reference to member vrel_y
     * @return Reference to member vrel_y
     */
    eProsima_user_DllExport float& vrel_y();

    /*!
     * @brief This function sets a value in member vrel_x
     * @param _vrel_x New value for member vrel_x
     */
    eProsima_user_DllExport void vrel_x(
            float _vrel_x);

    /*!
     * @brief This function returns the value of member vrel_x
     * @return Value of member vrel_x
     */
    eProsima_user_DllExport float vrel_x() const;

    /*!
     * @brief This function returns a reference to member vrel_x
     * @return Reference to member vrel_x
     */
    eProsima_user_DllExport float& vrel_x();

    /*!
     * @brief This function sets a value in member vrel_width_y
     * @param _vrel_width_y New value for member vrel_width_y
     */
    eProsima_user_DllExport void vrel_width_y(
            float _vrel_width_y);

    /*!
     * @brief This function returns the value of member vrel_width_y
     * @return Value of member vrel_width_y
     */
    eProsima_user_DllExport float vrel_width_y() const;

    /*!
     * @brief This function returns a reference to member vrel_width_y
     * @return Reference to member vrel_width_y
     */
    eProsima_user_DllExport float& vrel_width_y();

    /*!
     * @brief This function sets a value in member vrel_height_x
     * @param _vrel_height_x New value for member vrel_height_x
     */
    eProsima_user_DllExport void vrel_height_x(
            float _vrel_height_x);

    /*!
     * @brief This function returns the value of member vrel_height_x
     * @return Value of member vrel_height_x
     */
    eProsima_user_DllExport float vrel_height_x() const;

    /*!
     * @brief This function returns a reference to member vrel_height_x
     * @return Reference to member vrel_height_x
     */
    eProsima_user_DllExport float& vrel_height_x();

    /*!
     * @brief This function sets a value in member velocity
     * @param _velocity New value for member velocity
     */
    eProsima_user_DllExport void velocity(
            float _velocity);

    /*!
     * @brief This function returns the value of member velocity
     * @return Value of member velocity
     */
    eProsima_user_DllExport float velocity() const;

    /*!
     * @brief This function returns a reference to member velocity
     * @return Reference to member velocity
     */
    eProsima_user_DllExport float& velocity();

    /*!
     * @brief This function sets a value in member fuse_num
     * @param _fuse_num New value for member fuse_num
     */
    eProsima_user_DllExport void fuse_num(
            int32_t _fuse_num);

    /*!
     * @brief This function returns the value of member fuse_num
     * @return Value of member fuse_num
     */
    eProsima_user_DllExport int32_t fuse_num() const;

    /*!
     * @brief This function returns a reference to member fuse_num
     * @return Reference to member fuse_num
     */
    eProsima_user_DllExport int32_t& fuse_num();

    /*!
     * @brief This function sets a value in member radar_num
     * @param _radar_num New value for member radar_num
     */
    eProsima_user_DllExport void radar_num(
            int32_t _radar_num);

    /*!
     * @brief This function returns the value of member radar_num
     * @return Value of member radar_num
     */
    eProsima_user_DllExport int32_t radar_num() const;

    /*!
     * @brief This function returns a reference to member radar_num
     * @return Reference to member radar_num
     */
    eProsima_user_DllExport int32_t& radar_num();

    /*!
     * @brief This function sets a value in member frame_associate_num
     * @param _frame_associate_num New value for member frame_associate_num
     */
    eProsima_user_DllExport void frame_associate_num(
            int32_t _frame_associate_num);

    /*!
     * @brief This function returns the value of member frame_associate_num
     * @return Value of member frame_associate_num
     */
    eProsima_user_DllExport int32_t frame_associate_num() const;

    /*!
     * @brief This function returns a reference to member frame_associate_num
     * @return Reference to member frame_associate_num
     */
    eProsima_user_DllExport int32_t& frame_associate_num();

    /*!
     * @brief This function sets a value in member vrel_width
     * @param _vrel_width New value for member vrel_width
     */
    eProsima_user_DllExport void vrel_width(
            float _vrel_width);

    /*!
     * @brief This function returns the value of member vrel_width
     * @return Value of member vrel_width
     */
    eProsima_user_DllExport float vrel_width() const;

    /*!
     * @brief This function returns a reference to member vrel_width
     * @return Reference to member vrel_width
     */
    eProsima_user_DllExport float& vrel_width();

    /*!
     * @brief This function sets a value in member vrel_height
     * @param _vrel_height New value for member vrel_height
     */
    eProsima_user_DllExport void vrel_height(
            float _vrel_height);

    /*!
     * @brief This function returns the value of member vrel_height
     * @return Value of member vrel_height
     */
    eProsima_user_DllExport float vrel_height() const;

    /*!
     * @brief This function returns a reference to member vrel_height
     * @return Reference to member vrel_height
     */
    eProsima_user_DllExport float& vrel_height();

    /*!
     * @brief This function sets a value in member track_cnt_
     * @param _track_cnt_ New value for member track_cnt_
     */
    eProsima_user_DllExport void track_cnt_(
            int32_t _track_cnt_);

    /*!
     * @brief This function returns the value of member track_cnt_
     * @return Value of member track_cnt_
     */
    eProsima_user_DllExport int32_t track_cnt_() const;

    /*!
     * @brief This function returns a reference to member track_cnt_
     * @return Reference to member track_cnt_
     */
    eProsima_user_DllExport int32_t& track_cnt_();

    /*!
     * @brief This function sets a value in member lost_cnt_
     * @param _lost_cnt_ New value for member lost_cnt_
     */
    eProsima_user_DllExport void lost_cnt_(
            float _lost_cnt_);

    /*!
     * @brief This function returns the value of member lost_cnt_
     * @return Value of member lost_cnt_
     */
    eProsima_user_DllExport float lost_cnt_() const;

    /*!
     * @brief This function returns a reference to member lost_cnt_
     * @return Reference to member lost_cnt_
     */
    eProsima_user_DllExport float& lost_cnt_();

    /*!
     * @brief This function sets a value in member dist_long
     * @param _dist_long New value for member dist_long
     */
    eProsima_user_DllExport void dist_long(
            float _dist_long);

    /*!
     * @brief This function returns the value of member dist_long
     * @return Value of member dist_long
     */
    eProsima_user_DllExport float dist_long() const;

    /*!
     * @brief This function returns a reference to member dist_long
     * @return Reference to member dist_long
     */
    eProsima_user_DllExport float& dist_long();

    /*!
     * @brief This function sets a value in member dist_lat
     * @param _dist_lat New value for member dist_lat
     */
    eProsima_user_DllExport void dist_lat(
            float _dist_lat);

    /*!
     * @brief This function returns the value of member dist_lat
     * @return Value of member dist_lat
     */
    eProsima_user_DllExport float dist_lat() const;

    /*!
     * @brief This function returns a reference to member dist_lat
     * @return Reference to member dist_lat
     */
    eProsima_user_DllExport float& dist_lat();


    /*!
     * @brief This function returns the maximum serialized size of an object
     * depending on the buffer alignment.
     * @param current_alignment Buffer alignment.
     * @return Maximum serialized size.
     */
    eProsima_user_DllExport static size_t getMaxCdrSerializedSize(
            size_t current_alignment = 0);

    /*!
     * @brief This function returns the serialized size of a data depending on the buffer alignment.
     * @param data Data which is calculated its serialized size.
     * @param current_alignment Buffer alignment.
     * @return Serialized size.
     */
    eProsima_user_DllExport static size_t getCdrSerializedSize(
            const DDS_Object& data,
            size_t current_alignment = 0);


    /*!
     * @brief This function serializes an object using CDR serialization.
     * @param cdr CDR serialization object.
     */
    eProsima_user_DllExport void serialize(
            eprosima::fastcdr::Cdr& cdr) const;

    /*!
     * @brief This function deserializes an object using CDR serialization.
     * @param cdr CDR serialization object.
     */
    eProsima_user_DllExport void deserialize(
            eprosima::fastcdr::Cdr& cdr);



    /*!
     * @brief This function returns the maximum serialized size of the Key of an object
     * depending on the buffer alignment.
     * @param current_alignment Buffer alignment.
     * @return Maximum serialized size.
     */
    eProsima_user_DllExport static size_t getKeyMaxCdrSerializedSize(
            size_t current_alignment = 0);

    /*!
     * @brief This function tells you if the Key has been defined for this type
     */
    eProsima_user_DllExport static bool isKeyDefined();

    /*!
     * @brief This function serializes the key members of an object using CDR serialization.
     * @param cdr CDR serialization object.
     */
    eProsima_user_DllExport void serializeKey(
            eprosima::fastcdr::Cdr& cdr) const;

private:

    int32_t m_seq;
    int64_t m_stamp;
    int32_t m_tracker_id_;
    int32_t m_object_type;
    float m_confidence;
    std::array<float, 3> m_center;
    float m_length;
    float m_width;
    float m_height;
    std::array<float, 4> m_direction;
    float m_theta;
    std::array<float, 3> m_min;
    std::array<float, 3> m_max;
    float m_vrel_y;
    float m_vrel_x;
    float m_vrel_width_y;
    float m_vrel_height_x;
    float m_velocity;
    int32_t m_fuse_num;
    int32_t m_radar_num;
    int32_t m_frame_associate_num;
    float m_vrel_width;
    float m_vrel_height;
    int32_t m_track_cnt_;
    float m_lost_cnt_;
    float m_dist_long;
    float m_dist_lat;
};
/*!
 * @brief This class represents the structure DDS_Objects defined by the user in the IDL file.
 * @ingroup PERCEPTION_MSGS
 */
class DDS_Objects
{
public:

    /*!
     * @brief Default constructor.
     */
    eProsima_user_DllExport DDS_Objects();

    /*!
     * @brief Default destructor.
     */
    eProsima_user_DllExport ~DDS_Objects();

    /*!
     * @brief Copy constructor.
     * @param x Reference to the object DDS_Objects that will be copied.
     */
    eProsima_user_DllExport DDS_Objects(
            const DDS_Objects& x);

    /*!
     * @brief Move constructor.
     * @param x Reference to the object DDS_Objects that will be copied.
     */
    eProsima_user_DllExport DDS_Objects(
            DDS_Objects&& x);

    /*!
     * @brief Copy assignment.
     * @param x Reference to the object DDS_Objects that will be copied.
     */
    eProsima_user_DllExport DDS_Objects& operator =(
            const DDS_Objects& x);

    /*!
     * @brief Move assignment.
     * @param x Reference to the object DDS_Objects that will be copied.
     */
    eProsima_user_DllExport DDS_Objects& operator =(
            DDS_Objects&& x);

    /*!
     * @brief This function sets a value in member stamp
     * @param _stamp New value for member stamp
     */
    eProsima_user_DllExport void stamp(
            int64_t _stamp);

    /*!
     * @brief This function returns the value of member stamp
     * @return Value of member stamp
     */
    eProsima_user_DllExport int64_t stamp() const;

    /*!
     * @brief This function returns a reference to member stamp
     * @return Reference to member stamp
     */
    eProsima_user_DllExport int64_t& stamp();

    /*!
     * @brief This function copies the value in member objects
     * @param _objects New value to be copied in member objects
     */
    eProsima_user_DllExport void objects(
            const std::vector<DDS_Object>& _objects);

    /*!
     * @brief This function moves the value in member objects
     * @param _objects New value to be moved in member objects
     */
    eProsima_user_DllExport void objects(
            std::vector<DDS_Object>&& _objects);

    /*!
     * @brief This function returns a constant reference to member objects
     * @return Constant reference to member objects
     */
    eProsima_user_DllExport const std::vector<DDS_Object>& objects() const;

    /*!
     * @brief This function returns a reference to member objects
     * @return Reference to member objects
     */
    eProsima_user_DllExport std::vector<DDS_Object>& objects();

    /*!
     * @brief This function returns the maximum serialized size of an object
     * depending on the buffer alignment.
     * @param current_alignment Buffer alignment.
     * @return Maximum serialized size.
     */
    eProsima_user_DllExport static size_t getMaxCdrSerializedSize(
            size_t current_alignment = 0);

    /*!
     * @brief This function returns the serialized size of a data depending on the buffer alignment.
     * @param data Data which is calculated its serialized size.
     * @param current_alignment Buffer alignment.
     * @return Serialized size.
     */
    eProsima_user_DllExport static size_t getCdrSerializedSize(
            const DDS_Objects& data,
            size_t current_alignment = 0);


    /*!
     * @brief This function serializes an object using CDR serialization.
     * @param cdr CDR serialization object.
     */
    eProsima_user_DllExport void serialize(
            eprosima::fastcdr::Cdr& cdr) const;

    /*!
     * @brief This function deserializes an object using CDR serialization.
     * @param cdr CDR serialization object.
     */
    eProsima_user_DllExport void deserialize(
            eprosima::fastcdr::Cdr& cdr);



    /*!
     * @brief This function returns the maximum serialized size of the Key of an object
     * depending on the buffer alignment.
     * @param current_alignment Buffer alignment.
     * @return Maximum serialized size.
     */
    eProsima_user_DllExport static size_t getKeyMaxCdrSerializedSize(
            size_t current_alignment = 0);

    /*!
     * @brief This function tells you if the Key has been defined for this type
     */
    eProsima_user_DllExport static bool isKeyDefined();

    /*!
     * @brief This function serializes the key members of an object using CDR serialization.
     * @param cdr CDR serialization object.
     */
    eProsima_user_DllExport void serializeKey(
            eprosima::fastcdr::Cdr& cdr) const;

private:

    int64_t m_stamp;
    std::vector<DDS_Object> m_objects;
};
/*!
 * @brief This class represents the structure DDS_SensorFuseResult defined by the user in the IDL file.
 * @ingroup PERCEPTION_MSGS
 */
class DDS_SensorFuseResult
{
public:

    /*!
     * @brief Default constructor.
     */
    eProsima_user_DllExport DDS_SensorFuseResult();

    /*!
     * @brief Default destructor.
     */
    eProsima_user_DllExport ~DDS_SensorFuseResult();

    /*!
     * @brief Copy constructor.
     * @param x Reference to the object DDS_SensorFuseResult that will be copied.
     */
    eProsima_user_DllExport DDS_SensorFuseResult(
            const DDS_SensorFuseResult& x);

    /*!
     * @brief Move constructor.
     * @param x Reference to the object DDS_SensorFuseResult that will be copied.
     */
    eProsima_user_DllExport DDS_SensorFuseResult(
            DDS_SensorFuseResult&& x);

    /*!
     * @brief Copy assignment.
     * @param x Reference to the object DDS_SensorFuseResult that will be copied.
     */
    eProsima_user_DllExport DDS_SensorFuseResult& operator =(
            const DDS_SensorFuseResult& x);

    /*!
     * @brief Move assignment.
     * @param x Reference to the object DDS_SensorFuseResult that will be copied.
     */
    eProsima_user_DllExport DDS_SensorFuseResult& operator =(
            DDS_SensorFuseResult&& x);

    /*!
     * @brief This function sets a value in member object_type
     * @param _object_type New value for member object_type
     */
    eProsima_user_DllExport void object_type(
            uint32_t _object_type);

    /*!
     * @brief This function returns the value of member object_type
     * @return Value of member object_type
     */
    eProsima_user_DllExport uint32_t object_type() const;

    /*!
     * @brief This function returns a reference to member object_type
     * @return Reference to member object_type
     */
    eProsima_user_DllExport uint32_t& object_type();

    /*!
     * @brief This function sets a value in member detection_type
     * @param _detection_type New value for member detection_type
     */
    eProsima_user_DllExport void detection_type(
            uint32_t _detection_type);

    /*!
     * @brief This function returns the value of member detection_type
     * @return Value of member detection_type
     */
    eProsima_user_DllExport uint32_t detection_type() const;

    /*!
     * @brief This function returns a reference to member detection_type
     * @return Reference to member detection_type
     */
    eProsima_user_DllExport uint32_t& detection_type();

    /*!
     * @brief This function sets a value in member object_dist_long
     * @param _object_dist_long New value for member object_dist_long
     */
    eProsima_user_DllExport void object_dist_long(
            float _object_dist_long);

    /*!
     * @brief This function returns the value of member object_dist_long
     * @return Value of member object_dist_long
     */
    eProsima_user_DllExport float object_dist_long() const;

    /*!
     * @brief This function returns a reference to member object_dist_long
     * @return Reference to member object_dist_long
     */
    eProsima_user_DllExport float& object_dist_long();

    /*!
     * @brief This function sets a value in member object_dist_lat
     * @param _object_dist_lat New value for member object_dist_lat
     */
    eProsima_user_DllExport void object_dist_lat(
            float _object_dist_lat);

    /*!
     * @brief This function returns the value of member object_dist_lat
     * @return Value of member object_dist_lat
     */
    eProsima_user_DllExport float object_dist_lat() const;

    /*!
     * @brief This function returns a reference to member object_dist_lat
     * @return Reference to member object_dist_lat
     */
    eProsima_user_DllExport float& object_dist_lat();

    /*!
     * @brief This function sets a value in member object_vrel_long
     * @param _object_vrel_long New value for member object_vrel_long
     */
    eProsima_user_DllExport void object_vrel_long(
            float _object_vrel_long);

    /*!
     * @brief This function returns the value of member object_vrel_long
     * @return Value of member object_vrel_long
     */
    eProsima_user_DllExport float object_vrel_long() const;

    /*!
     * @brief This function returns a reference to member object_vrel_long
     * @return Reference to member object_vrel_long
     */
    eProsima_user_DllExport float& object_vrel_long();

    /*!
     * @brief This function sets a value in member object_vrel_lat
     * @param _object_vrel_lat New value for member object_vrel_lat
     */
    eProsima_user_DllExport void object_vrel_lat(
            float _object_vrel_lat);

    /*!
     * @brief This function returns the value of member object_vrel_lat
     * @return Value of member object_vrel_lat
     */
    eProsima_user_DllExport float object_vrel_lat() const;

    /*!
     * @brief This function returns a reference to member object_vrel_lat
     * @return Reference to member object_vrel_lat
     */
    eProsima_user_DllExport float& object_vrel_lat();

    /*!
     * @brief This function sets a value in member object_width
     * @param _object_width New value for member object_width
     */
    eProsima_user_DllExport void object_width(
            float _object_width);

    /*!
     * @brief This function returns the value of member object_width
     * @return Value of member object_width
     */
    eProsima_user_DllExport float object_width() const;

    /*!
     * @brief This function returns a reference to member object_width
     * @return Reference to member object_width
     */
    eProsima_user_DllExport float& object_width();

    /*!
     * @brief This function sets a value in member object_height
     * @param _object_height New value for member object_height
     */
    eProsima_user_DllExport void object_height(
            float _object_height);

    /*!
     * @brief This function returns the value of member object_height
     * @return Value of member object_height
     */
    eProsima_user_DllExport float object_height() const;

    /*!
     * @brief This function returns a reference to member object_height
     * @return Reference to member object_height
     */
    eProsima_user_DllExport float& object_height();

    /*!
     * @brief This function sets a value in member object_length
     * @param _object_length New value for member object_length
     */
    eProsima_user_DllExport void object_length(
            float _object_length);

    /*!
     * @brief This function returns the value of member object_length
     * @return Value of member object_length
     */
    eProsima_user_DllExport float object_length() const;

    /*!
     * @brief This function returns a reference to member object_length
     * @return Reference to member object_length
     */
    eProsima_user_DllExport float& object_length();

    /*!
     * @brief This function sets a value in member yaw_angle
     * @param _yaw_angle New value for member yaw_angle
     */
    eProsima_user_DllExport void yaw_angle(
            float _yaw_angle);

    /*!
     * @brief This function returns the value of member yaw_angle
     * @return Value of member yaw_angle
     */
    eProsima_user_DllExport float yaw_angle() const;

    /*!
     * @brief This function returns a reference to member yaw_angle
     * @return Reference to member yaw_angle
     */
    eProsima_user_DllExport float& yaw_angle();


    /*!
     * @brief This function returns the maximum serialized size of an object
     * depending on the buffer alignment.
     * @param current_alignment Buffer alignment.
     * @return Maximum serialized size.
     */
    eProsima_user_DllExport static size_t getMaxCdrSerializedSize(
            size_t current_alignment = 0);

    /*!
     * @brief This function returns the serialized size of a data depending on the buffer alignment.
     * @param data Data which is calculated its serialized size.
     * @param current_alignment Buffer alignment.
     * @return Serialized size.
     */
    eProsima_user_DllExport static size_t getCdrSerializedSize(
            const DDS_SensorFuseResult& data,
            size_t current_alignment = 0);


    /*!
     * @brief This function serializes an object using CDR serialization.
     * @param cdr CDR serialization object.
     */
    eProsima_user_DllExport void serialize(
            eprosima::fastcdr::Cdr& cdr) const;

    /*!
     * @brief This function deserializes an object using CDR serialization.
     * @param cdr CDR serialization object.
     */
    eProsima_user_DllExport void deserialize(
            eprosima::fastcdr::Cdr& cdr);



    /*!
     * @brief This function returns the maximum serialized size of the Key of an object
     * depending on the buffer alignment.
     * @param current_alignment Buffer alignment.
     * @return Maximum serialized size.
     */
    eProsima_user_DllExport static size_t getKeyMaxCdrSerializedSize(
            size_t current_alignment = 0);

    /*!
     * @brief This function tells you if the Key has been defined for this type
     */
    eProsima_user_DllExport static bool isKeyDefined();

    /*!
     * @brief This function serializes the key members of an object using CDR serialization.
     * @param cdr CDR serialization object.
     */
    eProsima_user_DllExport void serializeKey(
            eprosima::fastcdr::Cdr& cdr) const;

private:

    uint32_t m_object_type;
    uint32_t m_detection_type;
    float m_object_dist_long;
    float m_object_dist_lat;
    float m_object_vrel_long;
    float m_object_vrel_lat;
    float m_object_width;
    float m_object_height;
    float m_object_length;
    float m_yaw_angle;
};
/*!
 * @brief This class represents the structure DDS_SensorFuseResults defined by the user in the IDL file.
 * @ingroup PERCEPTION_MSGS
 */
class DDS_SensorFuseResults
{
public:

    /*!
     * @brief Default constructor.
     */
    eProsima_user_DllExport DDS_SensorFuseResults();

    /*!
     * @brief Default destructor.
     */
    eProsima_user_DllExport ~DDS_SensorFuseResults();

    /*!
     * @brief Copy constructor.
     * @param x Reference to the object DDS_SensorFuseResults that will be copied.
     */
    eProsima_user_DllExport DDS_SensorFuseResults(
            const DDS_SensorFuseResults& x);

    /*!
     * @brief Move constructor.
     * @param x Reference to the object DDS_SensorFuseResults that will be copied.
     */
    eProsima_user_DllExport DDS_SensorFuseResults(
            DDS_SensorFuseResults&& x);

    /*!
     * @brief Copy assignment.
     * @param x Reference to the object DDS_SensorFuseResults that will be copied.
     */
    eProsima_user_DllExport DDS_SensorFuseResults& operator =(
            const DDS_SensorFuseResults& x);

    /*!
     * @brief Move assignment.
     * @param x Reference to the object DDS_SensorFuseResults that will be copied.
     */
    eProsima_user_DllExport DDS_SensorFuseResults& operator =(
            DDS_SensorFuseResults&& x);

    /*!
     * @brief This function sets a value in member stamp
     * @param _stamp New value for member stamp
     */
    eProsima_user_DllExport void stamp(
            int64_t _stamp);

    /*!
     * @brief This function returns the value of member stamp
     * @return Value of member stamp
     */
    eProsima_user_DllExport int64_t stamp() const;

    /*!
     * @brief This function returns a reference to member stamp
     * @return Reference to member stamp
     */
    eProsima_user_DllExport int64_t& stamp();

    /*!
     * @brief This function copies the value in member objects
     * @param _objects New value to be copied in member objects
     */
    eProsima_user_DllExport void objects(
            const std::vector<DDS_SensorFuseResult>& _objects);

    /*!
     * @brief This function moves the value in member objects
     * @param _objects New value to be moved in member objects
     */
    eProsima_user_DllExport void objects(
            std::vector<DDS_SensorFuseResult>&& _objects);

    /*!
     * @brief This function returns a constant reference to member objects
     * @return Constant reference to member objects
     */
    eProsima_user_DllExport const std::vector<DDS_SensorFuseResult>& objects() const;

    /*!
     * @brief This function returns a reference to member objects
     * @return Reference to member objects
     */
    eProsima_user_DllExport std::vector<DDS_SensorFuseResult>& objects();

    /*!
     * @brief This function returns the maximum serialized size of an object
     * depending on the buffer alignment.
     * @param current_alignment Buffer alignment.
     * @return Maximum serialized size.
     */
    eProsima_user_DllExport static size_t getMaxCdrSerializedSize(
            size_t current_alignment = 0);

    /*!
     * @brief This function returns the serialized size of a data depending on the buffer alignment.
     * @param data Data which is calculated its serialized size.
     * @param current_alignment Buffer alignment.
     * @return Serialized size.
     */
    eProsima_user_DllExport static size_t getCdrSerializedSize(
            const DDS_SensorFuseResults& data,
            size_t current_alignment = 0);


    /*!
     * @brief This function serializes an object using CDR serialization.
     * @param cdr CDR serialization object.
     */
    eProsima_user_DllExport void serialize(
            eprosima::fastcdr::Cdr& cdr) const;

    /*!
     * @brief This function deserializes an object using CDR serialization.
     * @param cdr CDR serialization object.
     */
    eProsima_user_DllExport void deserialize(
            eprosima::fastcdr::Cdr& cdr);



    /*!
     * @brief This function returns the maximum serialized size of the Key of an object
     * depending on the buffer alignment.
     * @param current_alignment Buffer alignment.
     * @return Maximum serialized size.
     */
    eProsima_user_DllExport static size_t getKeyMaxCdrSerializedSize(
            size_t current_alignment = 0);

    /*!
     * @brief This function tells you if the Key has been defined for this type
     */
    eProsima_user_DllExport static bool isKeyDefined();

    /*!
     * @brief This function serializes the key members of an object using CDR serialization.
     * @param cdr CDR serialization object.
     */
    eProsima_user_DllExport void serializeKey(
            eprosima::fastcdr::Cdr& cdr) const;

private:

    int64_t m_stamp;
    std::vector<DDS_SensorFuseResult> m_objects;
};
/*!
 * @brief This class represents the structure FaultFromPerceptionInfo defined by the user in the IDL file.
 * @ingroup PERCEPTION_MSGS
 */
class FaultFromPerceptionInfo
{
public:

    /*!
     * @brief Default constructor.
     */
    eProsima_user_DllExport FaultFromPerceptionInfo();

    /*!
     * @brief Default destructor.
     */
    eProsima_user_DllExport ~FaultFromPerceptionInfo();

    /*!
     * @brief Copy constructor.
     * @param x Reference to the object FaultFromPerceptionInfo that will be copied.
     */
    eProsima_user_DllExport FaultFromPerceptionInfo(
            const FaultFromPerceptionInfo& x);

    /*!
     * @brief Move constructor.
     * @param x Reference to the object FaultFromPerceptionInfo that will be copied.
     */
    eProsima_user_DllExport FaultFromPerceptionInfo(
            FaultFromPerceptionInfo&& x);

    /*!
     * @brief Copy assignment.
     * @param x Reference to the object FaultFromPerceptionInfo that will be copied.
     */
    eProsima_user_DllExport FaultFromPerceptionInfo& operator =(
            const FaultFromPerceptionInfo& x);

    /*!
     * @brief Move assignment.
     * @param x Reference to the object FaultFromPerceptionInfo that will be copied.
     */
    eProsima_user_DllExport FaultFromPerceptionInfo& operator =(
            FaultFromPerceptionInfo&& x);

    /*!
     * @brief This function sets a value in member SPN
     * @param _SPN New value for member SPN
     */
    eProsima_user_DllExport void SPN(
            uint32_t _SPN);

    /*!
     * @brief This function returns the value of member SPN
     * @return Value of member SPN
     */
    eProsima_user_DllExport uint32_t SPN() const;

    /*!
     * @brief This function returns a reference to member SPN
     * @return Reference to member SPN
     */
    eProsima_user_DllExport uint32_t& SPN();

    /*!
     * @brief This function sets a value in member FMI
     * @param _FMI New value for member FMI
     */
    eProsima_user_DllExport void FMI(
            uint32_t _FMI);

    /*!
     * @brief This function returns the value of member FMI
     * @return Value of member FMI
     */
    eProsima_user_DllExport uint32_t FMI() const;

    /*!
     * @brief This function returns a reference to member FMI
     * @return Reference to member FMI
     */
    eProsima_user_DllExport uint32_t& FMI();

    /*!
     * @brief This function sets a value in member FaultLevel
     * @param _FaultLevel New value for member FaultLevel
     */
    eProsima_user_DllExport void FaultLevel(
            uint32_t _FaultLevel);

    /*!
     * @brief This function returns the value of member FaultLevel
     * @return Value of member FaultLevel
     */
    eProsima_user_DllExport uint32_t FaultLevel() const;

    /*!
     * @brief This function returns a reference to member FaultLevel
     * @return Reference to member FaultLevel
     */
    eProsima_user_DllExport uint32_t& FaultLevel();

    /*!
     * @brief This function sets a value in member exist
     * @param _exist New value for member exist
     */
    eProsima_user_DllExport void exist(
            bool _exist);

    /*!
     * @brief This function returns the value of member exist
     * @return Value of member exist
     */
    eProsima_user_DllExport bool exist() const;

    /*!
     * @brief This function returns a reference to member exist
     * @return Reference to member exist
     */
    eProsima_user_DllExport bool& exist();


    /*!
     * @brief This function returns the maximum serialized size of an object
     * depending on the buffer alignment.
     * @param current_alignment Buffer alignment.
     * @return Maximum serialized size.
     */
    eProsima_user_DllExport static size_t getMaxCdrSerializedSize(
            size_t current_alignment = 0);

    /*!
     * @brief This function returns the serialized size of a data depending on the buffer alignment.
     * @param data Data which is calculated its serialized size.
     * @param current_alignment Buffer alignment.
     * @return Serialized size.
     */
    eProsima_user_DllExport static size_t getCdrSerializedSize(
            const FaultFromPerceptionInfo& data,
            size_t current_alignment = 0);


    /*!
     * @brief This function serializes an object using CDR serialization.
     * @param cdr CDR serialization object.
     */
    eProsima_user_DllExport void serialize(
            eprosima::fastcdr::Cdr& cdr) const;

    /*!
     * @brief This function deserializes an object using CDR serialization.
     * @param cdr CDR serialization object.
     */
    eProsima_user_DllExport void deserialize(
            eprosima::fastcdr::Cdr& cdr);



    /*!
     * @brief This function returns the maximum serialized size of the Key of an object
     * depending on the buffer alignment.
     * @param current_alignment Buffer alignment.
     * @return Maximum serialized size.
     */
    eProsima_user_DllExport static size_t getKeyMaxCdrSerializedSize(
            size_t current_alignment = 0);

    /*!
     * @brief This function tells you if the Key has been defined for this type
     */
    eProsima_user_DllExport static bool isKeyDefined();

    /*!
     * @brief This function serializes the key members of an object using CDR serialization.
     * @param cdr CDR serialization object.
     */
    eProsima_user_DllExport void serializeKey(
            eprosima::fastcdr::Cdr& cdr) const;

private:

    uint32_t m_SPN;
    uint32_t m_FMI;
    uint32_t m_FaultLevel;
    bool m_exist;
};
/*!
 * @brief This class represents the structure DDS_PS_Online_Status defined by the user in the IDL file.
 * @ingroup PERCEPTION_MSGS
 */
class DDS_PS_Online_Status
{
public:

    /*!
     * @brief Default constructor.
     */
    eProsima_user_DllExport DDS_PS_Online_Status();

    /*!
     * @brief Default destructor.
     */
    eProsima_user_DllExport ~DDS_PS_Online_Status();

    /*!
     * @brief Copy constructor.
     * @param x Reference to the object DDS_PS_Online_Status that will be copied.
     */
    eProsima_user_DllExport DDS_PS_Online_Status(
            const DDS_PS_Online_Status& x);

    /*!
     * @brief Move constructor.
     * @param x Reference to the object DDS_PS_Online_Status that will be copied.
     */
    eProsima_user_DllExport DDS_PS_Online_Status(
            DDS_PS_Online_Status&& x);

    /*!
     * @brief Copy assignment.
     * @param x Reference to the object DDS_PS_Online_Status that will be copied.
     */
    eProsima_user_DllExport DDS_PS_Online_Status& operator =(
            const DDS_PS_Online_Status& x);

    /*!
     * @brief Move assignment.
     * @param x Reference to the object DDS_PS_Online_Status that will be copied.
     */
    eProsima_user_DllExport DDS_PS_Online_Status& operator =(
            DDS_PS_Online_Status&& x);

    /*!
     * @brief This function sets a value in member stamp
     * @param _stamp New value for member stamp
     */
    eProsima_user_DllExport void stamp(
            int64_t _stamp);

    /*!
     * @brief This function returns the value of member stamp
     * @return Value of member stamp
     */
    eProsima_user_DllExport int64_t stamp() const;

    /*!
     * @brief This function returns a reference to member stamp
     * @return Reference to member stamp
     */
    eProsima_user_DllExport int64_t& stamp();

    /*!
     * @brief This function copies the value in member lidar_state_
     * @param _lidar_state_ New value to be copied in member lidar_state_
     */
    eProsima_user_DllExport void lidar_state_(
            const std::array<int16_t, 4>& _lidar_state_);

    /*!
     * @brief This function moves the value in member lidar_state_
     * @param _lidar_state_ New value to be moved in member lidar_state_
     */
    eProsima_user_DllExport void lidar_state_(
            std::array<int16_t, 4>&& _lidar_state_);

    /*!
     * @brief This function returns a constant reference to member lidar_state_
     * @return Constant reference to member lidar_state_
     */
    eProsima_user_DllExport const std::array<int16_t, 4>& lidar_state_() const;

    /*!
     * @brief This function returns a reference to member lidar_state_
     * @return Reference to member lidar_state_
     */
    eProsima_user_DllExport std::array<int16_t, 4>& lidar_state_();
    /*!
     * @brief This function copies the value in member radar_state_
     * @param _radar_state_ New value to be copied in member radar_state_
     */
    eProsima_user_DllExport void radar_state_(
            const std::array<int16_t, 4>& _radar_state_);

    /*!
     * @brief This function moves the value in member radar_state_
     * @param _radar_state_ New value to be moved in member radar_state_
     */
    eProsima_user_DllExport void radar_state_(
            std::array<int16_t, 4>&& _radar_state_);

    /*!
     * @brief This function returns a constant reference to member radar_state_
     * @return Constant reference to member radar_state_
     */
    eProsima_user_DllExport const std::array<int16_t, 4>& radar_state_() const;

    /*!
     * @brief This function returns a reference to member radar_state_
     * @return Reference to member radar_state_
     */
    eProsima_user_DllExport std::array<int16_t, 4>& radar_state_();
    /*!
     * @brief This function copies the value in member camera_state_
     * @param _camera_state_ New value to be copied in member camera_state_
     */
    eProsima_user_DllExport void camera_state_(
            const std::array<int16_t, 2>& _camera_state_);

    /*!
     * @brief This function moves the value in member camera_state_
     * @param _camera_state_ New value to be moved in member camera_state_
     */
    eProsima_user_DllExport void camera_state_(
            std::array<int16_t, 2>&& _camera_state_);

    /*!
     * @brief This function returns a constant reference to member camera_state_
     * @return Constant reference to member camera_state_
     */
    eProsima_user_DllExport const std::array<int16_t, 2>& camera_state_() const;

    /*!
     * @brief This function returns a reference to member camera_state_
     * @return Reference to member camera_state_
     */
    eProsima_user_DllExport std::array<int16_t, 2>& camera_state_();

    /*!
     * @brief This function returns the maximum serialized size of an object
     * depending on the buffer alignment.
     * @param current_alignment Buffer alignment.
     * @return Maximum serialized size.
     */
    eProsima_user_DllExport static size_t getMaxCdrSerializedSize(
            size_t current_alignment = 0);

    /*!
     * @brief This function returns the serialized size of a data depending on the buffer alignment.
     * @param data Data which is calculated its serialized size.
     * @param current_alignment Buffer alignment.
     * @return Serialized size.
     */
    eProsima_user_DllExport static size_t getCdrSerializedSize(
            const DDS_PS_Online_Status& data,
            size_t current_alignment = 0);


    /*!
     * @brief This function serializes an object using CDR serialization.
     * @param cdr CDR serialization object.
     */
    eProsima_user_DllExport void serialize(
            eprosima::fastcdr::Cdr& cdr) const;

    /*!
     * @brief This function deserializes an object using CDR serialization.
     * @param cdr CDR serialization object.
     */
    eProsima_user_DllExport void deserialize(
            eprosima::fastcdr::Cdr& cdr);



    /*!
     * @brief This function returns the maximum serialized size of the Key of an object
     * depending on the buffer alignment.
     * @param current_alignment Buffer alignment.
     * @return Maximum serialized size.
     */
    eProsima_user_DllExport static size_t getKeyMaxCdrSerializedSize(
            size_t current_alignment = 0);

    /*!
     * @brief This function tells you if the Key has been defined for this type
     */
    eProsima_user_DllExport static bool isKeyDefined();

    /*!
     * @brief This function serializes the key members of an object using CDR serialization.
     * @param cdr CDR serialization object.
     */
    eProsima_user_DllExport void serializeKey(
            eprosima::fastcdr::Cdr& cdr) const;

private:

    int64_t m_stamp;
    std::array<int16_t, 4> m_lidar_state_;
    std::array<int16_t, 4> m_radar_state_;
    std::array<int16_t, 2> m_camera_state_;
};

#endif // _PERCEPTION_MSGS_H_